由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问一个Linux无法监听指定端口的问题
相关主题
C10M 练习2: 空TCP 连接,1M per 4G RAMC10M 练习 step 1: 10M sockets
一个socket中select函数的问题用INADDR_ANY 怎么才能看出destination IP?
UDP广播老是接收不到热门技术系统学习,求指导
我这个读写文本文件的程序为什么第一次总是出错?求救网络大牛们,如何处理tcp短连接
socket re-connection problemconst reference in copy constructor
How to get local hostname under linux?array如何get set?
有没有人在Vista下试过UDP广播关于fscanf格式化读取的问题.
UNIX DATAGRAM 类型socket最大报文长度多少?One network C question
相关话题的讨论汇总
话题: addr话题: 端口话题: sin话题: listenfd话题: server
进入Programming版参与讨论
1 (共1页)
h**i
发帖数: 712
1
指定一个空闲的端口,比如50000,bind后发现系统给分配了2xxxx 的端口,用sudo执
行也不行,这是为什么?
X****r
发帖数: 3557
2
你把绑定的端口和连接的端口搞混了吧?2xxxx是不是连接的端口?

【在 h**i 的大作中提到】
: 指定一个空闲的端口,比如50000,bind后发现系统给分配了2xxxx 的端口,用sudo执
: 行也不行,这是为什么?

h**i
发帖数: 712
3
绑定后应该可以用netstat看到监听的端口,根本不是指定的端口。
client都连不上,没有连接的端口。

【在 X****r 的大作中提到】
: 你把绑定的端口和连接的端口搞混了吧?2xxxx是不是连接的端口?
t****t
发帖数: 6806
4
那你是怎么绑定的呢? 拿code出来看看吧.

【在 h**i 的大作中提到】
: 绑定后应该可以用netstat看到监听的端口,根本不是指定的端口。
: client都连不上,没有连接的端口。

X****r
发帖数: 3557
5
你用了netstat -l了吗?缺省不显示监听的端口。
还有一个可能是你指定端口的时候没有转换高低字节,
50000->0x50C3, 0xC350->20675
man htons

【在 h**i 的大作中提到】
: 绑定后应该可以用netstat看到监听的端口,根本不是指定的端口。
: client都连不上,没有连接的端口。

t****t
发帖数: 6806
6
哈哈, 肯定是没转换...

【在 X****r 的大作中提到】
: 你用了netstat -l了吗?缺省不显示监听的端口。
: 还有一个可能是你指定端口的时候没有转换高低字节,
: 50000->0x50C3, 0xC350->20675
: man htons

h**i
发帖数: 712
7
用 netstat -anp查看的
if((listenfd=socket(AF_INET,SOCK_STREAM, 0)) == -1)
{
fprintf(stderr, "Socket Error: %s\a\n", strerror(errno));

exit(1);
}
on = 1;
ret = setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));

bzero((void*)&server_addr, sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htonl(9000);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

if(bind(listenfd, (struct sockaddr *)(&server_addr), sizeof(struct
sockaddr)) == -1)
{
fprintf(stdout, "%s:%d Bind error: %s\n\a", __FILE__, __LINE__,
strerror(errno));
exit(1);
}
if(listen(listenfd, 20)== -1)
{
fprintf(stdout, "Listen error: %s\n\a", strerror(errno));
exit(1);
}

【在 X****r 的大作中提到】
: 你用了netstat -l了吗?缺省不显示监听的端口。
: 还有一个可能是你指定端口的时候没有转换高低字节,
: 50000->0x50C3, 0xC350->20675
: man htons

j*a
发帖数: 14423
8
server_addr.sin_port=htons(9000);



【在 h**i 的大作中提到】
: 用 netstat -anp查看的
: if((listenfd=socket(AF_INET,SOCK_STREAM, 0)) == -1)
: {
: fprintf(stderr, "Socket Error: %s\a\n", strerror(errno));
:
: exit(1);
: }
: on = 1;
: ret = setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
:

h**i
发帖数: 712
9
发现了,数据类型错了,我以为端口可以用到32位。
谢谢各位。

【在 j*a 的大作中提到】
: server_addr.sin_port=htons(9000);
:
:

M*********t
发帖数: 257
10
confused ?
struct sockaddr_in {
short sin_family; // e.g. AF_INET, AF_INET6
unsigned short sin_port; // e.g. htons(3490)
struct in_addr sin_addr; // see struct in_addr, below
char sin_zero[8]; // zero this if you want to
};
unsigned short is 16 bit so port number should be
0~65535
9000 is a good number to use呀 ?

【在 h**i 的大作中提到】
: 发现了,数据类型错了,我以为端口可以用到32位。
: 谢谢各位。

1 (共1页)
进入Programming版参与讨论
相关主题
One network C questionsocket re-connection problem
又一个GDB的问题:关于显示数据How to get local hostname under linux?
fprintf in C\C++有没有人在Vista下试过UDP广播
c的文件写入问题UNIX DATAGRAM 类型socket最大报文长度多少?
C10M 练习2: 空TCP 连接,1M per 4G RAMC10M 练习 step 1: 10M sockets
一个socket中select函数的问题用INADDR_ANY 怎么才能看出destination IP?
UDP广播老是接收不到热门技术系统学习,求指导
我这个读写文本文件的程序为什么第一次总是出错?求救网络大牛们,如何处理tcp短连接
相关话题的讨论汇总
话题: addr话题: 端口话题: sin话题: listenfd话题: server