當前位置:編程學習大全網 - 編程語言 - Udp編程示例

Udp編程示例

對了,妳的地址不好用,改成了127.0.0.1,端口可以。完全按照要求編寫,編譯正確,調試通過:

gcc server.c -o server

gcc客戶端. c -o客戶端

打開2個控制臺:壹個正在運行。/server,而另壹臺正在運行。/客戶端。

server.c:

========================================

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

# include & ltsys/types . h & gt;

# include & ltsys/socket . h & gt;

# include & ltarpa/inet . h & gt;

# include & lt錯誤號& gt

#定義緩沖區大小1024

typedef struct sockaddr SA

int main(void)

{

char buf[buffer size];

addr_s中的結構sockaddr _ in

addr_c中的結構sockaddr _ in

int sockfd

socklen_t長度;

int I;

if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1)

{

perror(“套接字失敗”);

return-1;

}

memset(& amp;addr_s,0,sizeof(addr_s))。

addr _ s.sin _ family = AF _ INET

addr _ s . sin _ addr . s _ addr = inet _ addr(" 127 . 0 . 0 . 1 ");

addr _ s . sin _ port = htons(31180);

if(bind(sockfd,(SA *)& amp;addr_s,sizeof(addr_s)) == -1)

{

perror("綁定失敗");

return-1;

}

length = sizeof(addr _ c);

memset(buf,' \0 ',sizeof(buf));

if(recvfrom(sockfd,buf,sizeof(buf),0

,(SA *)& amp;addr _ c & amp;長度)== -1)

{

perror(" recvfrom fail ");

}

printf("recvfrom client:%s\n ",buf);

sendto(sockfd,buf,sizeof(buf),0,(SA *)& amp;addr_c,sizeof(addr _ c));

關閉(sockfd);

}

====================================

客戶端. c:

====================================

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltstring.h & gt

# include & ltsys/types . h & gt;

# include & ltsys/socket . h & gt;

# include & ltarpa/inet . h & gt;

# include & lt錯誤號& gt

#定義緩沖區大小1024

typedef struct sockaddr SA

int main(void)

{

int sockfd

char buf[buffer size];

addr_s中的結構sockaddr _ in

if((sockfd = socket(AF_INET,SOCK_DGRAM,0)) == -1)

{

perror(“套接字失敗”);

return-1;

}

memset(& amp;addr_s,0,sizeof(addr_s))。

addr _ s.sin _ family = AF _ INET

addr _ s . sin _ addr . s _ addr = inet _ addr(" 127 . 0 . 0 . 1 ");

addr _ s . sin _ port = htons(31180);

memset(buf,' \0 ',sizeof(buf));

sprintf(buf,“abcde”);

if(sendto(sockfd,buf,sizeof(buf)

,0,(SA *)& amp;addr_s,sizeof(addr _ s))& lt;0)

{

perror(" send to fail ");

}

memset(buf,' \0 ',sizeof(buf));

recvfrom(sockfd,buf,sizeof(buf),0,NULL,NULL);

printf("recvfrom server:%s\n ",buf);

關閉(sockfd);

}

  • 上一篇:防錯的應用
  • 下一篇:鮮桃禮盒哪家實惠
  • copyright 2024編程學習大全網