C# socket编程,如何区分两个本地client(在同一台电脑上),使得两个client可通过server实现通信,高手赐教

 我来答
blakli123
2012-05-16 · TA获得超过272个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:247万
展开全部
建立client都随机分配一个端口;
获取接入服务器端的客户端IP和端口:
((IPEndPoint)TcpClient.Client.RemoteEndPoint).Address
((IPEndPoint)TcpClient.Client.RemoteEndPoint).Port
追问
如何获取Client的IP和端口,能写具体点吗,多谢!
我将代码粘入程序,给我了一个错误提示“Error 2 An object reference is required for the non-static field, method, or property 'System.Net.Sockets.TcpClient.Client.get' ”
追答
我这只是示例啊,TcpClient是由服务器建立侦听后,有客户端登陆而引发事件后,由函数传递过来的参数!全码多了,我就做简单的一个过程
//起始函数,port为侦听端口
public MyTcpSever(int port)
{
//建立一个侦听,第一个参数为本机的IP,第2个参数为侦听端口
TcpListener tcplistener = new TcpListener(System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName())[0], port);
//开始侦听
tcplistener.Start();
//开始接受客户端的请求,第一个参数返调的函数,第2个参数为传递的参数
tcplistener.BeginAcceptTcpClient(new AsyncCallback(ClientAccept), tcplistener);
}
//当有客户端接入时引发的事件
private void ClientAccept(IAsyncResult result)
{
//提取传递的参数转换为TcpListener
TcpListener tcplst = (TcpListener)result.AsyncState;
//获取客户端信息,在此加入自己的处理代码段
TcpClient tcpclient = tcplst.EndAcceptTcpClient(result);
//获取客户端的IP和端口
string Ip = ((IPEndPoint)tcpclient.Client.RemoteEndPoint).Address;
int port = ((IPEndPoint)tcpclient.Client.RemoteEndPoint).Port ;
//继续侦听等待下一个客户端的接入
tcplst.BeginAcceptTcpClient(new AsyncCallback(sub_ClientAccept), tcplst);
}
netfengxia
2012-05-16
知道答主
回答量:18
采纳率:0%
帮助的人:5.5万
展开全部
当然就是靠端口来区分了.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式