博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
服务端 Sockt 线程
阅读量:6836 次
发布时间:2019-06-26

本文共 3390 字,大约阅读时间需要 11 分钟。

1.创建监听线程

///         ///1. 线程监听操作        ///         private void ThreadServerListen()        {            //接收数据线程            Thread ReceiveThread = new Thread(new ThreadStart(StartServerListenAndReceiveData)); *            //后台运行            ReceiveThread.IsBackground = true;            //开启线程            ReceiveThread.Start();        }

 

2.开始监听

///         ///2 开始监听        ///         private void StartServerListenAndReceiveData()        {            try            {                //如果没有绑定则执行绑定当地终结点操作                if (!ServerSocket.IsBound)                {                    //设置终结点                    SetEndPoint(); //绑定本地结点                    ServerSocket.Bind(ServerEndPoint);                    //开启监听                    ServerSocket.Listen(20);                    listBox1.Text = string.Format("成功开启监听(Ip:{0}    端口:{1})  时间:[{2}] \n", ServerEndPoint.Address, ServerEndPoint.Port, DateTime.Now.ToString());                    ClientSocket = ServerSocket.Accept();   //接受连接                }                //接收数据开始                ServerReceiveData();  *            }            catch            {                MessageBox.Show(string.Format("开启监听{0}:{1}失败!请检查服务端IP地址是否配置正确。", ServerEndPoint.Address, ServerEndPoint.Port), "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);            }        }

/// <summary>

/// 设置服务器端终结点
/// </summary>
private void SetEndPoint()
{
IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
IPAddress address = hostEntry.AddressList[0];//
ServerEndPoint = new IPEndPoint(address, SERVER_END_POINT_PORT);
}

 

 

3. 开始接收数据

///         ///3 接收数据        ///         private void ServerReceiveData()        {            try            {                while (true)                {                    Thread.Sleep(1);                    byte[] bytes = new byte[1024];                    //接收数据                    int butter = ClientSocket.Receive(bytes);                    string strData = "";                    if (butter > 0)                    {                        //接收的数据                        strData = Encoding.Default.GetString(bytes);                        listBox1.Text += "接收到的数据为:" + strData + "\r\n";                    }                    //创建发送线程                    ThreadClientrSendData(strData); *                    ////客户端SOCKET                    ClientSocket = ServerSocket.Accept();  //继续接受链接                }            }            catch (Exception err)            {                MessageBox.Show(err.ToString());            }        }        #endregion

 

4.创建发送数据线程

///         ///4. 线程发送数据        ///         private void ThreadClientrSendData(string jasondata)        {            Thread thread = new Thread(new ParameterizedThreadStart(ClientSendData));            thread.IsBackground = true;            thread.Priority = ThreadPriority.Highest;            thread.Start(jasondata);        }

 

5.开始发送数据

//str  接受的数据     private void ClientSendData(object str)    {            //4.转换byte              byte[] sendByte = Encoding.Default.GetBytes(JsonData);            //重新调整客户端端口号            ClientEndPoint = (IPEndPoint)ClientSocket.RemoteEndPoint;            ClientEndPoint = new IPEndPoint(ClientEndPoint.Address, ClientEndPoint.Port);            //向客户端发送数据            ClientSocket.Send(sendByte);            listBox1.Text += "\r\n 发送的数据为:" + BallJason + "\r\n";}

转载于:https://www.cnblogs.com/Evaniko/p/3860200.html

你可能感兴趣的文章
《兵临城下》:360输在“斯大林格勒”?
查看>>
《塞洛特傳說》道具系统
查看>>
MCollective架构篇4-MCollective各种插件的部署及测试
查看>>
第五章 Python函数你知多少
查看>>
百度推出飓风算法,严厉打击恶劣采集
查看>>
Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
查看>>
组策略部署软件----将部署的软件分类
查看>>
系统管理员在企业中的职业定位及发展方向 连载(二)
查看>>
完美世界推穿戴式设备:能消灭“宅玩家”吗?
查看>>
关东升的《从零开始学Swift》3月9日已经上架
查看>>
IFA与“色“俱进,三星“量子点+曲面”如何掀起新变革?
查看>>
2013年4月工作小结 -- 穿越前的回眸
查看>>
用什么样的个人笔记类软件?OneNote、EverNote(印象笔记)、为知笔记、麦库记事、有道云笔记……...
查看>>
Photoshop制作一只可爱的卡通小鸟
查看>>
管理不能太重原则
查看>>
在安装完成oracle的时候,需要su - oracle,但有时候出现ulimit pize...
查看>>
Hadoop系列之六:分布式文件系统HDFS
查看>>
【VMCloud云平台】SCAP(四)连接公有云(一)
查看>>
第十一集VLAN原理和VTP协议理论讲解
查看>>
做网络主播心得
查看>>