如何在同一台电脑上调试TCP连接?
我写了一个服务器端程序A.exe,用一个TCPListener监听了本机的2185端口。具体的语句是:TcpListenerlistener=newTcpListener...
我写了一个服务器端程序A.exe,用一个TCPListener监听了本机的2185端口。
具体的语句是: TcpListener listener = new TcpListener(IPAddress.Any,2185);
我在另一个客户端程序B.exe中,用TcpClient尝试连接服务器。
具体的语句是:TcpClient.Connect(IPAddress.Parse(服务器IP), 2185);
如果在两台不同的电脑上可以连接,但如果在同一台电脑上,将服务器IP改为127.0.0.1就出错了。
错误信息是“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”。
我猜测应该是2185端口被占用引起的冲突错误,但应该怎么解决呢?
因为客户端程序也需要在服务器上正常运行的啊……
求前辈们指点!谢谢。 展开
具体的语句是: TcpListener listener = new TcpListener(IPAddress.Any,2185);
我在另一个客户端程序B.exe中,用TcpClient尝试连接服务器。
具体的语句是:TcpClient.Connect(IPAddress.Parse(服务器IP), 2185);
如果在两台不同的电脑上可以连接,但如果在同一台电脑上,将服务器IP改为127.0.0.1就出错了。
错误信息是“通常每个套接字地址(协议/网络地址/端口)只允许使用一次”。
我猜测应该是2185端口被占用引起的冲突错误,但应该怎么解决呢?
因为客户端程序也需要在服务器上正常运行的啊……
求前辈们指点!谢谢。 展开
8个回答
展开全部
在服务端设置端口复用的选项,如:
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val);
有问题请继续追问。
setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)val,sizeof(val);
有问题请继续追问。
追问
你好,我按照自己的理解改为这样,仍然会出同样的错误信息:
TC = new TcpClient();
TC.Client.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.ReuseAddress, true);
然后 TC.Client.Connect 地址。
VS2005环境。字数受限,贴不全了。
追答
后续如果有编程上的问题,可以直接点击我的名字进入我的主页,选择向我提问。
有问必答,谢谢!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不可以同时两个程序监听,你的B程序有错误,只是简单的修改了A程序的内容就拿来监听,其实还是A程序在监听,你要改A程序的监听目标,不能都是2185端口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说“将服务器IP改为127.0.0.1就出错了”。你试试把127.0.0.1改为电脑实际设置的IP试试。如192.168.1.20这样的,当然你事先要设置好本机IP
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
服务器端用127.0.0.1 客户端用你的ip地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
安装虚拟机
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询