如何指定accept创建的Socket端口号

zkfly 2006-04-05 08:57:48
accept的会自动创建一个新的套结字用于主机和客户端通讯,
但是我想让它创建的套接字的端口在我的指定范围内,要如何设置。
例如我想设置端口范围在10000~20000范围内。
...全文
467 点赞 收藏 16
写回复
16 条回复
quanbaoxiao 2006年05月16日
mark
回复 点赞
zobin 2006年05月16日
不给分不回答
回复 点赞
coffee_to 2006年05月12日
如果我沒有記錯的話,在服務端,ACCEPT所得到的套接字,仍然是使用偵聽的端口的。
樓主可以用netstat去看一下。
回复 点赞
victorious 2006年05月07日
没有见过怎么指定Accept()创建的套接字的端口。看过的书里好像都没有涉及到这方面的东西啊!
回复 点赞
CarPhen 2006年05月07日
Accept 创建的SOCKET的端口号就是侦听Socket的端口号, 你监视一下试试
回复 点赞
oyljerry 2006年04月05日
lz设置好自己侦听的端口号,client的是随机的
回复 点赞
stevecrisewu 2006年04月05日
端口不是你自己指定的么?

你是不是想说套结字句柄数值的范围啊
回复 点赞
covsno 2006年04月05日
louzhu不懂tcp的
回复 点赞
wanglei051 2006年04月05日
好象是我理解错了!不好意思!
回复 点赞
wanglei051 2006年04月05日
楼主也不说明白,到底你是想指定服务端端口还是client端口
回复 点赞
wanglei051 2006年04月05日
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/sockaddr_2.asp
指定一个端口应该没什么问题,要指定范围,可以让定义一个变量,让它在10000~20000范围出现的随机数,不知道这样行不,最好研究一下MSDN
回复 点赞
zkfly 2006年04月05日
帅哥,可能你不小心看错了。俺说是在accept的时候,为创建的新Socket指定端口。
回复 点赞
MSDN3000 2006年04月05日
bind
The Windows Sockets bind function associates a local address with a socket.

int bind(
SOCKET s,
const struct sockaddr FAR *name,
int namelen
);
回复 点赞
MSDN3000 2006年04月05日
呵呵,sorry,楼主,当时匆匆路过
一般socket->bind->listen->accept,listen和accept的socket是不一样的.没有见为accept指定端口这样干的啊.
回复 点赞
zkfly 2006年04月05日
上面的说法还不完全切题,更正如下:

如果只是设置Listen的端口,我想任何人包括用组件做开发的都会。我是想指定真正通讯用的套结字端口。

一般的情况Listen的端口的端口是自己设置,而真正用于通讯的端口是Winsock随机在系统中找个空闲的端口。

而我想把这个随机找的端口设置在我指定的范围内,问有没有办法。
回复 点赞
zkfly 2006年04月05日
如果只是设置Listen的端口,我想任何人包括用组件做开发的都会。我是想指定accept之后的通讯用的套结字端口。

如oyljerry(【勇敢的心】→ ㊣任逍遥√㊣)所说,一般的情况Listen的端口的端口是自己设置,而真正用于通讯的client端口是Winsock随机在系统中找个空闲的端口。

而我想把这个随机找的端口设置在我指定的范围内,问有没有办法。
回复 点赞
发动态
发帖子
网络编程
创建于2007-09-28

7880

社区成员

6.4w+

社区内容

VC/MFC 网络编程
社区公告
暂无公告