写了一段程序,想实现以下功能:客户端向服务器发送数据,服务器收到数据后打印出客户端的IP地址和发送数据的端口号,并且发送一个回复信息到这个IP和端口号。服务器的ip是211.84.93.111。用5060端口接收数据(客户端和服务器运行于同一台机器上)。
但是运行的时候出现了下面的问题:
1 先运行server程序,再运行client程序。第一次运行client时server给出的ip和端口号总是不正确,并不是实际client的ip地址端口号,客户端也接收不到回复信息。这是什么原因呢?
2 能不能给客户端指定一个端口号来发送数据呢,而不是让系统随机指定?
请各位高手指教,谢谢了!
server.c
#include
#include
int main()
{
int sock,i;
struct sockaddr_in address,addr;
char *ip;
int port;
char buff[500];
sock=socket(AF_INET,SOCK_DGRAM,0);
addr.sin_family=PF_INET;
address.sin_family=PF_INET;
address.sin_port=htons(5060);
address.sin_addr.s_addr=inet_addr("211.84.93.111");
bind(sock,(struct sockaddr *)&address,sizeof(address));
wh