close(cli_sockfd); return 0; }
服务器端程序如下: /*UDP*/ /*
*服务器的工作流程:首先调用socket函数创建一个Socket,然后调用bind函数将其与本机
*地址以及一个本地端口号绑定,接收到一个客户端时,服务器显示该客户端的IP地址,并将字串 *返回给客户端。
*Author:xiaopeng 01121435 *Date:2015/05/16 */
#include
#define PORT 5432
int main(int argc,char **argv) {
int ser_sockfd; int len; //int addrlen; socklen_t addrlen; char seraddr[100];
struct sockaddr_in ser_addr;
/*建立socket*/
ser_sockfd=socket(AF_INET,SOCK_DGRAM,0); if(ser_sockfd<0) {
printf(\return 1; }
printf(\创建成功!\\n\/*填写sockaddr_in 结构*/
addrlen=sizeof(struct sockaddr_in); bzero(&ser_addr,addrlen); ser_addr.sin_family=AF_INET;
ser_addr.sin_addr.s_addr=htonl(INADDR_ANY); ser_addr.sin_port=htons(PORT); /*绑定客户端*/
if(bind(ser_sockfd,(struct sockaddr *)&ser_addr,addrlen)<0) {
printf(\连接错误!\\n\return 1; }
printf(\绑定Scoket成功!,等待客户端的请求...\\n\while(1) {
bzero(seraddr,sizeof(seraddr));
len=recvfrom(ser_sockfd,seraddr,sizeof(seraddr),0,(struct sockaddr*)&ser_addr,&addrlen);
/*显示client端的网络地址*/
printf(\客户端IP地址: %s\\n\/*显示客户端发来的字串*/
printf(\接收到的消息:%s\/*将字串返回给client端*/
sendto(ser_sockfd,seraddr,len,0,(struct sockaddr*)&ser_addr,addrlen); }
close(ser_sockfd);
return 0; }
接着使用gcc 4.6.3进行编译: gcc client.c -o client gcc server.c -o server
编译完成产生两个可执行文件client和server。 首先运行服务器端程序server 再运行客户端程序client并发送消息 继续发送一条消息
在服务器程序关闭的情况,UDP仍然可以发送消息,但是不能确保送达目的地。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库TCPUDP通信实验报告(2)在线全文阅读。
相关推荐: