用udp通信,一个SOCKET绑定同一端口能否同时收发数据。

greatdiviner 2010-07-18 06:08:04
比如SOCKRT sockfd;
//本地地址和端口
me_addr.sin_family = AF_INET; // host byte order
me_addr.sin_port = htons(5000); // short, network byte order
me_addr.sin_addr.s_addr = INADDR_ANY; // automatically fill with my IP
memset(me_addr.sin_zero, '\0', sizeof me_addr.sin_zero);
//对方地址端口
he_addr.sin_family = AF_INET; // host byte order
he_addr.sin_port = htons(5000); // short, network byte order
he_addr.sin_addr.s_addr = inet_addr("192.168.0.158");
memset(he_addr.sin_zero, '\0', sizeof he_addr.sin_zero);

bind(sockfd,(SOCKADDR*)&localAddr,sizeof(SOCKADDR_IN));

然后我能不能sendto(sockfd,
sendMessge,
sendMessgeLength,
0,
(SOCKADDR *) &he_addr,
sizeof(he_addr));

recvfrom(sockfd,
recvMessage,
sizeof(recvMessage),
0,
(SOCKADDR *)&he_addr,
&he_addr_size);
也就是说,使用同一个端口来收发数据,是这样子吗?这样子可以吗?
后边要同时收发数据,但是用同一本地端口收发,我准备使用多线程来实现,一个线程收数据处理,一个线程发数据,这样子可以吗?收发不会相互有什么影响吧?
...全文
4227 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
ucliff 2010-07-31
  • 打赏
  • 举报
回复
完全可以
conyloveme 2010-07-31
  • 打赏
  • 举报
回复
没问题 只要你吧发送和接收做成两个线程就行了
  • 打赏
  • 举报
回复
当然可以了啊 给分吧
zlixus 2010-07-29
  • 打赏
  • 举报
回复
没问题,完全可以!
LiuQijun 2010-07-29
  • 打赏
  • 举报
回复
完全可以的,是全双工的,支持收发数据
crystalbug 2010-07-28
  • 打赏
  • 举报
回复
当然可以啊
lantianxiadebaiyun 2010-07-28
  • 打赏
  • 举报
回复
同一个端口是可以收发数据,但是不是同时能实现收发数据,在时序上是错开的
【天运子】 2010-07-27
  • 打赏
  • 举报
回复
可以的 关键还是看你设计的模式的 具体情况具体分析
  • 打赏
  • 举报
回复
完全可以
Q446512799 2010-07-26
  • 打赏
  • 举报
回复
书上就是这样的,完全可以
Eleven 2010-07-22
  • 打赏
  • 举报
回复
socket是全双工,收发数据两不误
homesos 2010-07-22
  • 打赏
  • 举报
回复
可以,端口是全双工的
周药师 2010-07-22
  • 打赏
  • 举报
回复
完全可以
lhuoshan 2010-07-22
  • 打赏
  • 举报
回复
setsockopt function [Winsock]
设置一下这个参数:
SO_REUSEADDR
By default, a socket cannot be bound (see bind) to a local address that is already in use. On occasion, however, it can be necessary to reuse an address in this way.
lhuoshan 2010-07-22
  • 打赏
  • 举报
回复
可以的 。。。
Csuxiaowu 2010-07-20
  • 打赏
  • 举报
回复
你去MSDN 一查 就知道 他们的例子都是用的同一个套接字
vivvan 2010-07-20
  • 打赏
  • 举报
回复
可以实现的。。
m_tornado 2010-07-20
  • 打赏
  • 举报
回复
可以吧~
jogger007 2010-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 liyinlei 的回复:]
没问题。 收发数据一般都用同一个端口。端口实质是 网络通讯时应用程序的标识。
[/Quote]
+1
Normandie007 2010-07-20
  • 打赏
  • 举报
回复
完全可以
加载更多回复(5)

18,356

社区成员

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

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