private void btn_start_Click(object sender, EventArgs e) { //socket服务器端逻辑 //1、创建socket对象(用于服务器端监听) //para1:使用ipv4的网络寻址协议。 //para2:数据传输方式 stream流式协议. //para3:通信协议的设置(tcp协议) Socket serverSoc = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //2、绑定IP和端口 IPAddress ip = IPAddress.Parse("");//将字符串转换成IP地址 IPEndPoint ipendPoint = new IPEndPoint(ip, int.Parse(""));//给出端口号 serverSoc.Bind(ipendPoint); //3、开启侦听 serverSoc.Listen(10);//挂起队列的最大长度。超过这个数之后,就会将最早的给删掉 //4、开始接受客户端连接 ThreadPool.QueueUserWorkItem(new WaitCallback(this.SartAcceptClient), serverSoc); } public void SartAcceptClient(object state) { var serverSoc = (Socket)state; while (true) { Socket proxSocket = serverSoc.Accept();//accept方法一执行,当前线程阻塞。一直等客户端连接上。 //将字符串转换成字节数组 byte[] data = Encoding.Default.GetBytes("Hello World"); proxSocket.Send(data, 0, data.Length, SocketFlags.None);//最后一个参数,当在同一个局域网内进行访问的时候,就使用None,如果是外网访问的话,那么需要设置其他参数 //proxSocket.Shutdown(SocketShutdown.Both);//关闭服务器端的socket对象。发送一个0字节的消息,告知对方,此次通信结束。 //proxSocket.Close(); //serverSoc.Close(); } }
socket相关
猜你喜欢
转载自www.cnblogs.com/vichin/p/8987681.html
今日推荐
周排行