TCP可以控制端口吗?

x1x5x9 2009-07-09 11:33:09
connect连接一个服务器 端口好像都是自动分配的 我想用我指定的端口去连接可以吗?
...全文
71 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
x1x5x9 2009-07-09
  • 打赏
  • 举报
回复
bind(sockClient,(SOCKADDR*)&addrSrv1,sizeof(SOCKADDR));
x1x5x9 2009-07-09
  • 打赏
  • 举报
回复
晕 我老绑不成功啊


SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

SOCKADDR_IN addrSrv1;
addrSrv.sin_addr.S_un.S_addr=NULL;
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6001);

bind(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));



jcwinner 2009-07-09
  • 打赏
  • 举报
回复
mark,当然可以的。
yayafu 2009-07-09
  • 打赏
  • 举报
回复
你自己绑定就行了啊,不要让系统给你绑定嘛.
Eleven 2009-07-09
  • 打赏
  • 举报
回复
你在connect到Server之前,bind端口就可以了。如果不bind(),就是用默认的端口
Wenxy1 2009-07-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 microyzy 的回复:]
bind sockClient
[/Quote]

绑定.
blackcat242 2009-07-09
  • 打赏
  • 举报
回复
可以的
microyzy 2009-07-09
  • 打赏
  • 举报
回复
bind sockClient
x1x5x9 2009-07-09
  • 打赏
  • 举报
回复

SOCKET sockClient=socket(AF_INET,SOCK_STREAM,);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6001);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));


哪个地方写端口?
neohope 2009-07-09
  • 打赏
  • 举报
回复
可以的,比如你用一个tcp的socket就行
stormxs 2009-07-09
  • 打赏
  • 举报
回复
可以
microyzy 2009-07-09
  • 打赏
  • 举报
回复
可以。
dl551djs 2009-07-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 x1x5x9 的回复:]
晕 我老绑不成功啊


C/C++ code
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

SOCKADDR_IN addrSrv1;
addrSrv.sin_addr.S_un.S_addr=NULL;
addrSrv.sin_family…
[/Quote]

addrSrv.sin_port=htons(6000);看到这行的port没,翻译过来就是端口啊,
定义完端口就要绑定下啊
bind(sockClient,(SOCKADDR*)&addrSrv1,sizeof(SOCKADDR));
然后在绑定的端口通信了。
wangask00 2009-07-09
  • 打赏
  • 举报
回复
客户端在连接之前先bind
然后连接就会用bind绑定的端口来进行通信吧
玖伍叁柒 2009-07-09
  • 打赏
  • 举报
回复
addrSrv.sin_addr.S_un.S_addr=NULL;


服务器端的话
应该是addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);吧

如果是客户端的话就要指定一个服务器地址了,比如 inet_addr("192.168.1.2"),或者回环地址127.0.0.*
玖伍叁柒 2009-07-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 x1x5x9 的回复:]
C/C++ code
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,);

SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6001);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));




哪个地方写端口?
[/Quote]

addrSrv.sin_port=htons(6001);

6001就是端口
qiyexinglang 2009-07-09
  • 打赏
  • 举报
回复
up

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧