• Socket-传送文件


    客户端:

     public partial class Form1 : Form
        {
            Socket myClientSocket;
            public Form1()
            {
                InitializeComponent();
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                button1.Text = "发送";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                myClientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse("xxxxx"), 49392);
                myClientSocket.Connect(ipEndPoint);
                FileStream fileStream = new FileStream(@"C:UsersAlexDesktop	est.exe", FileMode.Open);
                byte[] mybyte = new byte[fileStream.Length];
                fileStream.Read(mybyte, 0, mybyte.Length);
                fileStream.Close();
                myClientSocket.Send(mybyte);
            }
        }

    服务器端

    public partial class Form1 : Form
        {
            Socket listenServerSocket;
            Socket socket;
            public Form1()
            {
                InitializeComponent();
                listenServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                listenServerSocket.Bind(new IPEndPoint(IPAddress.Parse("1xxxx"), 49392));
                listenServerSocket.Listen(10);
                listenServerSocket.BeginAccept(new AsyncCallback(OnConnectRequest), listenServerSocket);
     
            }
            public void OnConnectRequest(IAsyncResult ar)
            {
                Socket server1 = (Socket)ar.AsyncState;
                socket = server1.EndAccept(ar);
                Byte[] byteDateLine = new byte[10];
                server1.BeginAccept(new AsyncCallback(OnConnectRequest), server1);
                while (true)
                {
                    int recv = 0;
                    FileStream fs = new FileStream(@"C:UsersAlexDesktop	est1.exe", FileMode.Create);
                    while ((recv = socket.Receive(byteDateLine)) > -1)
                    {
                        fs.Write(byteDateLine, 0, recv);
                    }
                    fs.Flush();
                    fs.Close();
                }
            }
        }
  • 相关阅读:
    关于linux下如何使用svn 客户端
    vscode 如何格式化vue(template)html代码 , 保持标签属性不换行
    echarts的一些基础笔记
    Stompjs websocket vue
    GLSL反转矩阵inverse
    【入门向】使用 MetaHook Plus 绘制 HUD
    取文件MD5 WINAPI
    BAD APPLE C++控制台程序
    查看struct或class的内存布局
    让游戏以高性能GPU(独立显卡)运行
  • 原文地址:https://www.cnblogs.com/dangnianxiaoqingxin/p/12593918.html
Copyright © 2020-2023  润新知