当前位置: 技术问答>linux和unix
基于UDP的编程中,如何用指定的端口发送数据?
来源: 互联网 发布时间:2015-12-09
本文导语: linux下基于UDP的socket编程: 定义了一个 int sock;然后用sendto(sock,···)发送数据,系统会随机选取一个端口进行发送,怎么能自己指定一个端口发送数据呢(因为在后面还有别的程序需要这样做)? 请各位高手指点,...
linux下基于UDP的socket编程:
定义了一个 int sock;然后用sendto(sock,···)发送数据,系统会随机选取一个端口进行发送,怎么能自己指定一个端口发送数据呢(因为在后面还有别的程序需要这样做)?
请各位高手指点,谢谢了!
定义了一个 int sock;然后用sendto(sock,···)发送数据,系统会随机选取一个端口进行发送,怎么能自己指定一个端口发送数据呢(因为在后面还有别的程序需要这样做)?
请各位高手指点,谢谢了!
|
int serfd = socket(AF_INET,SOCK_DGRAM,0);
int t = 1;
int ii = sizeof(t);
setsockopt(serfd,SOL_SOCKET,SO_REUSEADDR,&t,ii);
struct sockaddr_in toaddr;
memset(&toaddr,0,sizeof(toaddr));
toaddr.sin_family = AF_INET;
toaddr.sin_port = htons(指定端口);
inet_pton(AF_INET,需要发送的地址,&toaddr.sin_addr)
sendto(serfd,需要发送的消息,strlen(需要发送的消息),0,(struct sockaddr *)&toaddr,sizeof(toaddr));
int t = 1;
int ii = sizeof(t);
setsockopt(serfd,SOL_SOCKET,SO_REUSEADDR,&t,ii);
struct sockaddr_in toaddr;
memset(&toaddr,0,sizeof(toaddr));
toaddr.sin_family = AF_INET;
toaddr.sin_port = htons(指定端口);
inet_pton(AF_INET,需要发送的地址,&toaddr.sin_addr)
sendto(serfd,需要发送的消息,strlen(需要发送的消息),0,(struct sockaddr *)&toaddr,sizeof(toaddr));
|
MARK
|
汗,这个这个,没有必要吧。
只有监听程序才需要指定端口,
一个发送程序干吗要指定端口呢?
让系统来分配就可以了啊。。。
你就算是这次指定了这个端口,下一次如果其他发送程序占用了这个端口,你怎么办?
你就不发送了?等待别人发送完你再发送???
只有监听程序才需要指定端口,
一个发送程序干吗要指定端口呢?
让系统来分配就可以了啊。。。
你就算是这次指定了这个端口,下一次如果其他发送程序占用了这个端口,你怎么办?
你就不发送了?等待别人发送完你再发送???