如果运行时无法绑定到80端口,可能是
◆端口已经被其他服务器进程占用;
◆在某些 *** 作系统中,如果没有以超级用户的身份来运行服务器程序,那么 *** 作系统不允许服务器绑定到1~1023之间的端口。
学习这个类,首先需要了解基本的TCP/IP 和UDP 协议,对端口…………都有一定的理解……以下是我总结的重要的几点,希望对你有用……有不懂得可以到我空间提问……
1利用Tcp协议编程
1)服务器端:
a)建立TCP监听器TcpListener对象。
TcpListener tl=new TcpListener(端口号);
b)启动监听器
tlStart();
c)用监听器获取连接进来的套接字(Socket)
Socket s=myListAcceptSocket();
d)通过Socket的Receive方法获取客户端发送的数据
byte [] result=new byte[1024];
int k=sReceive(result);
e)通过Socket的Send方法向客户端发送数据
byte[] st=SystemTextEncodingDefaultGetBytes(“text”);
sSend(st);
f)在通讯结束后,需要释放资源结束监听
sClose();
tlStop();
2)客户端:
a)建立TCP客户端TcpClient对象。
TcpClient tcpclnt = new TcpClient();
b)连接服务器
tcpclntConnect(IP地址字符串,端口号);
c)获得客户端网络传输 流
Stream stm =tcpclntGetStream();
d)通过Stream的Write方法向服务器端发送的数据
e)通过Stream的Read方法读取服务器段发来的数据
f)在通讯结束后,需要释放资源,结束和服务器的连接
tcpclntClose();
2利用UDP协议编程
a)建立UDP客户端UdpClient对象。
UdpClient uc=new UdpClient(端口号);
b)连接对方远程主机
ucConnect(IP地址,对方远程主机的端口号);
c)通过uc的Receive方法获取远程主机发送来的数据
IPEndPoint ip=new IPEndPoint(IPAddressParse(IP字符串),端口号);
byte[] b=ucReceive(ref ip);
e)通过uc的Send方法向远程主机发送数据
byte[] st=SystemTextEncodingDefaultGetBytes(“text”);
ucSend(st);
f)在通讯结束后,需要释放资源
ucClose();
你的代码和你的问题根本就不是一码事啊,你的问题是写的UDP程序会死,可实际上你写的TCP,Socket s = new Socket(AddressFamilyInterNetwork, SocketTypeStream, ProtocolTypeTcp),明明建立的是TCP的socket,另外UDP是不需要accept的,只需要recv就行。TCP首先要recv,再accept。你这个代码完全是错误的
以上就是关于为什么我用socket监听80号端口就失败 监听其他端口就成功啊全部的内容,包括:为什么我用socket监听80号端口就失败 监听其他端口就成功啊、C#的Socket的使用、我写了一个基于UDP协议的监听程序 可程序走到了 Socket temp = s.Accept();这就会死掉!求解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)