IPEndPoint locEP= new IPEndPoint(IPAddress.Any, 2000);
listener.Bind(locEP);
listener.Listen(100);
acceptThread.Start();
private void AcceptWorkThread()
{
Thread.CurrentThread.IsBackground = true;
while (true)
{
Socket accept = listener.Accept();
IPEndPoint remoEP = (IPEndPoint)accept.RemoteEndPoint;
string recString = "接收到來自" + remoEP.Address.ToString() + "的連接。";
this.Invoke(new AddListItemHandler(this.AddListItem), new string[] { recString });
Thread receiveThread = new Thread(new ParameterizedThreadStart(ReceiveWorkThread));
receiveThread.Start(accept);
}
}
{
Thread.CurrentThread.IsBackground = true;
Socket socket = (Socket)obj;
byte[] buffer = new byte[1024];
while (true)
{
int receiveCount = socket.Receive(buffer);
if (receiveCount > 0)
{
IPEndPoint remoEP = (IPEndPoint)socket.RemoteEndPoint;
string recString = "來自客戶端" + remoEP.Address.ToString() + "的消息:" + Encoding.Default.GetString(buffer, 0, receiveCount);
this.Invoke(new AddListItemHandler(this.AddListItem), new string[] { recString });
socket.Send(buffer, receiveCount, SocketFlags.None);
}
else
{
socket.Close();
break;
}
}
}
IPEndPoint locEP= new IPEndPoint(IPAddress.Any, 2000);
listener.Bind(locEP);
listener.Listen(100);
foreach (Thread th in ClientThreadList)
{
th = new Thread(new ThreadStart(ClientWorkThread));
th.Start();
}
{
byte[] buffer = new byte[1024];
while (true)
{
Socket socket = listener.Accept();
string recString = "接收到來自" + remoEP.Address.ToString() + "的連接。";
this.Invoke(new AddListItemHandler(this.AddListItem), new string[] { recString });
int receCount = socket.Receive(buffer);
if (receCount>0)
{
string recString = "來自客戶端" + remoEP.Address.ToString() + "的消息:" + Encoding.Default.GetString(buffer, 0, receiveCount);
this.Invoke(new AddListItemHandler(this.AddListItem), new string[] { recString });
socket.Send(buffer, receCount, SocketFlags.None);
}
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
}