C#编程 服务器与客户端之间的端口问题

来源:百度知道 编辑:UC知道 时间:2024/05/12 15:25:33
比如

服务器写了TcpListener监听 端口"1111";

客户端用TcpClient 连接 端口"1111";

为什么一个服务器只能连一个客户端, 如果在开一个客户端连接的话就会
无响应, 只能把第一个客户端关闭,第2个客户端就可以连上了。
怎么写才可以 同时都连上,1对多
请把Socket 监听的写法 写一下~~~

怎么可能~?
.net的tcp连接你都没搞清楚~
有一个监听socket,用来监听端口1111
当有一个客户请求连接的时候,监听的服务器会创建另外一个socket对象与客户端通行,而通信的端口是随即分配的,比如是2222
那么这个服务器的另外一个socket就和客户端通信,占用端口2222,服务器以前的监听socket继续监听1111

又有一个客户端请求连接的时候,会再次创建一个socket,用另外一个随即端口与之通信,比如3333,而1111继续监听其它请求

够明白了~~~?~~?
总之,1111端口使用来『监听』的,不是用来『通信』的,而通信端口随即分配(根据设置可以手动分配)

public void Listen() //监听端口
{
try
{
objTcpListener=new TcpListener(7788);
objTcpListener.Start();
while(true)
{
objSocket=objTcpListener.AcceptSocket();
if(objSocket.Connected)
{
th=new Thread(new ThreadStart(this.ReceiveCl));
th.Start();
conn="ok";
}
}
}
catch(Exception ex)
{
// MessageBox.Show("服务器监听错误:"+ex.Message);
}
}