private void button1_Click(object sender, EventArgs e)
{//开始监听
IPAddress ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint end = new IPEndPoint(ip, 888);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(end);
socket.Listen(10);
richTextBox1.Text = ip + ":888 正等待客户端的连接...";
clientSocket = socket.Accept();
richTextBox1.Text += "\n已与客户端" + clientSocket.RemoteEndPoint.ToString() + "建立连接";
thread = new Thread(new ThreadStart(AA));
thread.Start();
}
private void AA()
{
NetworkStream ns = new NetworkStream(clientSocket);
while (true)
{
byte[] bb = new byte[1024];
try
{
ns.Read(bb, 0, bb.Length);
richTextBox1.Text += "\n" + Encoding.Unicode.GetString(bb);
}
catch
{
richTextBox1.Text += "\n与客户端已断开连接!";
break;
}
}
这个也属于多线程吧?想做个多个客户端同时向服务器发数据的,谢谢
{//开始监听
IPAddress ip = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0];
IPEndPoint end = new IPEndPoint(ip, 888);
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(end);
socket.Listen(10);
richTextBox1.Text = ip + ":888 正等待客户端的连接...";
clientSocket = socket.Accept();
richTextBox1.Text += "\n已与客户端" + clientSocket.RemoteEndPoint.ToString() + "建立连接";
thread = new Thread(new ThreadStart(AA));
thread.Start();
}
private void AA()
{
NetworkStream ns = new NetworkStream(clientSocket);
while (true)
{
byte[] bb = new byte[1024];
try
{
ns.Read(bb, 0, bb.Length);
richTextBox1.Text += "\n" + Encoding.Unicode.GetString(bb);
}
catch
{
richTextBox1.Text += "\n与客户端已断开连接!";
break;
}
}
这个也属于多线程吧?想做个多个客户端同时向服务器发数据的,谢谢
richTextBox1.Text += "\n" + Encoding.Unicode.GetString(bb);
这行代码是绝对错误的,跨线程操作UI了
即select语句的使用。
如何操作,thread=new Thread(new ThreadStart());thread.Start()只表示一个线程吗?