步驟:
1. 建立套接字
2. 繫結ip
3. 讀取資料
#include
#include /* see notes */
#include
#include
#include
#include
#define srv_port 9999
int main(int argc, char *argv)
// bind addr
struct sockaddr_in self; //描述本地ip和埠的資訊
self.sin_family = af_inet;
self.sin_port = htons(srv_port);
= inet_addr("192.168.7.5"); //本機器的ip
self.sin_addr.s_addr = htonl(inaddr_any); //本機器的所有ip
ret = bind(srv_fd, (const
struct sockaddr *)&self, sizeof(self)); //繫結ip
if(ret < 0)
struct sockaddr_in info;
socklen_t len = sizeof(info);
while(1)
buf[ret] = '\0';
printf("from client %s (port %d) : %s\n", inet_ntoa(info.sin_addr), ntohs(info.sin_port), buf);
} close(srv_fd);
return
0;}
客戶端步驟:
1. 建立套接字
2. 傳送資訊
#include
#include
#include /* see notes */
#include
#include
#include
#include
#define srv_port 9999
#define srv_ip "192.168.7.5"
int main(int argc, char *argv)
int fd = socket(af_inet, sock_dgram, 0); //建立套接字
if(fd < 0)
struct sockaddr_in peer;
peer.sin_family = af_inet;
peer.sin_port = htons(srv_port);
//inet_aton(srv_ip, &peer.sin_addr);
inet_aton(argv[1], &peer.sin_addr);
while(1)
} close(fd);
return
0;}
socket實現UDP通訊
udp與tcp不同,是一種無連線的通訊方式,相比tcp而言更加靈活。利用socket實現udp的方式相比tcp而言也更加簡單。傳送方 1.初始化套接字 2.建立socket 3.利用sendto傳送資料 tcp是send 4.關閉socket 接收方 1.初始化套接字 2.建立socket並與本機進...
UDP協議與UDP通訊
1 udp協議 udp是無連線通訊協議,即在資料傳輸時,資料的傳送端和接收端不建立邏輯連線。簡單來說,當一台計算機向另外一台計算機傳送資料時,傳送端不會確認接收端是否存在,就會發出資料,同樣接收端在收到資料時,也不會向傳送端反饋是否收到資料。但是在使用udp協議傳送資料時,由於udp的面向無連線性,...
通訊原理之UDP協議(四)
udp是傳輸層協議,和tcp協議處於乙個分層中,但是與tcp協議不同,udp協議並不提供超時重傳,出錯重傳等功能,也就是說其是不可靠的協議。2.1.udp埠號 由於很多軟體需要用到udp協議,所以udp協議必須通過某個標誌用以區分不同的程式所需要的資料報。埠號的功能就在於此,例如某乙個udp程式a在...