一个关于端口绑定的问题? 急,在线等!
一个简单的C/S模式的聊天程序,
服务器端:绑定端口号为 m_serAddr.sin_port = 5000; 如果这里我使用htonl 和 htons(5000)均不成成功,客户端也是这种现象,为什么? 直接使用5000就没有任何问题
问题点数:0、回复次数:11Top
1 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2004-09-03 13:53:30 得分 0
htonl(5000)=8917760Top
2 楼zhonglingqqxh(扫帚的影子)回复于 2004-09-03 13:55:03 得分 0
htons(5000)是什么呢?
我直接写5000结果是用的哪个端口呢?Top
3 楼zjz0911(燕语)回复于 2004-09-03 15:13:31 得分 0
你用的那个函数是转换字节顺序的,你干吗要用它阿?
Top
4 楼zhonglingqqxh(扫帚的影子)回复于 2004-09-03 15:20:08 得分 0
我要绑定端口啊!难道不需要转换字节顺序吗?Top
5 楼gdy119(夜风微凉)回复于 2004-09-03 19:51:32 得分 0
应该是没问题的:
SOCKADDR_IN m_ClientAddr;
UINT m_uPort=5000;
m_ClientAddr.sin_port=htons(m_uPort);Top
6 楼poorhouse(相思醉卧酒,青灯燎了红衣)回复于 2004-09-11 23:41:48 得分 0
同意楼上,是没有问题的,我的也是这样写的:
struct sockaddr_in local;
unsigned short port = 2427;
local.sin_port = htons(port);
htons()是将主机字节转换成可以在网络传输的字节顺序
所以你所谓的不成功是不是你的客户端连接的服务器端口上面也出了类似问题Top
7 楼xxedge(好钢用在刀刃上)回复于 2004-09-12 00:13:02 得分 0
需要使用htons(5000),是不是你的机器上的5000已经被占用了,你换个别的端口试验一下呢Top
8 楼jiudon(有一种感觉,叫想你::)回复于 2004-09-12 16:01:43 得分 0
你可以看看你的
C和S端是否一致,是都进行了htons()转换的么?我原来遇见过,如果一端转换了,而另一端没有转换就不能正常的通讯!!!Top
9 楼mxh0506(21911)回复于 2004-09-12 16:25:29 得分 0
PC上使用的是little endian字节顺序,网络传输时是big endian。
htons = host to net (byte order) shortTop
10 楼mxh0506(21911)回复于 2004-09-12 16:27:22 得分 0
直接使用MFC的Socket类不就很好吗?可以避开使用API的细节Top
11 楼SmallPigII(小猪II我没有猪的形象,但我有猪的气质)回复于 2004-09-13 09:36:53 得分 0
反正是绑定端口,好象是用htons(5000),不过5000=htons(x),x<65535,好象没事,至于错误,看看WSAGetLastError()不就知道了.反正这年头程序里莫名其妙的错误很多的.Top
相关问题
- 怎样释放服务端口??? 急:在线等待
- 如何获取本机端口号?急!!!在线等待
- 急!!如何更改Apache的8080端口 ? 在线!
- 请问net send使用那个端口?急!在线等
- 电话拔号出现 打不开端口。。急,,,在线等
- 100分求助~ 完成端口与多线程问题,急!!
- 请问怎样在windows2003中手动打开1433端口?急需,在线等
- 只开80端口怎么连21端口,急急!!!!!!!!!!!!!!!!!!!!!!!
- 如果和iis服务器配置端口有冲突的话,应该怎么解决呢?我的iis端口是80,那tomcat的端口是不是就不能设置成8080啦?高手指点啊!急,在线等
- 如果和iis服务器配置端口有冲突的话,应该怎么解决呢?我的iis端口是80,那tomcat的端口是不是就不能设置成8080啦?高手指点啊!急,在线等




