//udp--客戶端
#include
#include
#include
#include
#include
#define size 100
#define ip "127.0.0.1"
#define port 10086
int main()
; struct sockaddr_in addr;
//建立socket--udp
socketid = socket(af_inet, sock_dgram, 0);
if (socketid < 0)
printf("socket ok\r\n");
//設定對方的位址
addrlength = sizeof(addr);
memset(&addr, 0, addrlength);
addr.sin_family = af_inet;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inet_addr(ip);
//傳送訊息
fgets(buf, size - 1, stdin);
ret = sendto(socketid, buf, strlen(buf) - 1, 0, (struct sockaddr *)&addr, addrlength);
if (ret > 0)
//接收訊息
memset(buf, 0, size);
ret = recvfrom(socketid, buf, size - 1, 0, (struct sockaddr *)&addr, &addrlength);
if (ret > 0)
//關閉套接字
close(socketid);
return
0;}
//udp--server
#include
#include
#include
#include
#include
#define ip "127.0.0.1"
#define port 10086
#define size 100
int main()
; struct sockaddr_in addr;
//建立套接字 udp
socketid = socket(af_inet, sock_dgram, 0);
if (socketid < 0)
//設定套接字位址可以重用
setsockopt(socketid, sol_socket, so_reuseaddr, &on, sizeof(on));
printf("socket ok\r\n");
//繫結自己的位址
addrlength = sizeof(addr);
memset(&addr, 0, addrlength);
addr.sin_family = af_inet;
addr.sin_port = htons(port);
addr.sin_addr.s_addr = inaddr_any;
ret = bind(socketid, (struct sockaddr *)&addr, addrlength);
if (ret < 0)
printf("bind ok\r\n");
//接收訊息
ret = recvfrom(socketid, buf, size - 1, 0, (struct sockaddr *)&addr, &addrlength);
if (ret > 0)
//傳送訊息
fgets(buf, size - 1, stdin);
ret = sendto(socketid, buf, strlen(buf) - 1, 0, (struct sockaddr *)&addr, addrlength);
if (ret > 0)
//關閉套接字
close(socketid);
return
0;}
實現簡單UDP伺服器客戶端模型
udp是無連線的,在資料的傳送之前不需要連線,只需要知道要發資料給誰,然後將資料發出即可,可以直接接收到其他人發來的資料,不必呼叫listen 和accept 函式。所以udp中建立好套接字後,就可以直接進行資料的傳輸。基於udp的接收和傳送函式 include include ssize t se...
基於UDP的伺服器端和客戶端
前面的文章中我們給出了幾個tcp的例子,對於udp而言,只要能理解前面的內容,實現並非難事。udp不像tcp,無需在連線狀態下交換資料,因此基於udp的伺服器端和客戶端也無需經過連線過程。也就是說,不必呼叫 listen 和 accept 函式。udp中只有建立套接字的過程和資料交換的過程。tcp中...
6 1 基於UDP的伺服器端 客戶端
1.udp套接字原理 可靠性方面來說,tcp的確比udp好,但是udp的結構比tcp簡潔,不會傳送類似ack應答訊息,也不會有seq序號,效能有時比tcp高出很多。同時區分tcp和udp的重要標誌是流控制 tcp的生命在於流控制。圖中,ip的作用是讓離開主機b的udp資料報準確傳送到主機 但是最終交...