近日写了一个tcp通信程序,但是运行时总是出现错误提示:
由于目标机器积极拒绝,无法连接
于是四处搜索解决方法,得到好几种可能的原因:
1.如果是采用TCP/udp协议进行连接,检查windows防火墙是否开放相应SocketTCP/udp端口;
简单的检测方法是关闭windows防火墙后再试;
2.检查防火墙软件是否开放相应SocketTCP/udp端口;
简单的检测方法是关闭防火墙软件后再试;
3.如果服务器端和客户端均在本机上运行,则将相应的 serverIP="127.0.0.1",serveraddress="127.0.0.1";
服务器端侦听:
listener = new TcpListener(IPAddress.Parse(serverIP), listenport);
客户端与服务器建立连接:
clientsocket = new TcpClient(serveraddress, serverport);
4.如果服务器运行在局域网或广域网内,则将相应的
serverIP,serveraddress设为本机所在局域网或广域网上的IP;
注意 serverport==listenport;
仔细的研究也上面的方法,防火墙什么的也都禁了,可仍然不成功,正在不知道怎么办的时候看到了下面这句话:
需要你用tcpclient访问的IP的端口正在被监听,否则就会显示积极拒绝,不是看他是否被占用,要看他是否在监听
顿时醒悟。是自己开了一个tcplistener线程监听端口,但是忘了写thread.start();语句,也就是没有进行监听,所以总是出错~~~