用udp通信,一个SOCKET绑定同一端口能否同时收发数据。
比如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);
也就是说,使用同一个端口来收发数据,是这样子吗?这样子可以吗?
后边要同时收发数据,但是用同一本地端口收发,我准备使用多线程来实现,一个线程收数据处理,一个线程发数据,这样子可以吗?收发不会相互有什么影响吧?