您的位置:首页 > 编程语言 > C#

C# socket 多线程多客户端简单实例

2011-05-13 20:17 453 查看
原文地址:http://topic.csdn.net/u/20101223/13/80b09ec9-f40e-4e95-a9e0-d38abdfa3e2a.html

bool listenalive = true;
private void ServerStart()
{
//创建IPEndPoint实例
IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6001);
//创建一个套接字
serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
//将所创建的套接字与IPEndPoint绑定
serverSocket.Bind(ipep);
//设置套接字为收听模式
serverSocket.Listen(10);

while (listenalive)
{
try
{
//在套接字上接收接入的连接
clientSocket = serverSocket.Accept();
clientThread = new Thread(new ThreadStart(ReceiveData));
clientThread.Start();
}
catch (Exception ex)
{
MessageBox.Show("listening Error: " + ex.Message);
}
}
}
private void ReceiveData()
{
bool keepalive = true;
Socket s = clientSocket;
Byte[] buffer = new Byte[1024];

//根据收听到的客户端套接字向客户端发送信息
IPEndPoint clientep = (IPEndPoint)s.RemoteEndPoint;

while (keepalive)
{
//在套接字上接收客户端发送的信息
int bufLen = 0;
try
{
bufLen = s.Available;

s.Receive(buffer, 0, bufLen, SocketFlags.None);
if (bufLen == 0)
continue;
}
catch (Exception ex)
{
MessageBox.Show("Receive Error:" + ex.Message);
return;
}
clientep = (IPEndPoint)s.RemoteEndPoint;
string clientcommand = System.Text.Encoding.ASCII.GetString(buffer).Substring(0, bufLen);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: