为什么我用socket监听80号端口就失败 监听其他端口就成功啊

为什么我用socket监听80号端口就失败 监听其他端口就成功啊,第1张

如果运行时无法绑定到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();这就会死掉!求解!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10119217.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存