socket UDP網路程式編寫

2021-05-12 10:12:48 字數 2617 閱讀 7612

基於udp(面向無連線)的socket程式設計

伺服器(接收端)程式

1. 建立套接字(socket)

2. 將套接字繫結到乙個本地位址和埠上(bind)

3. 等待接收資料(recvfrom)

4. 關閉套接字

客戶端(傳送端)程式

1. 建立套接字(socket)

2. 向伺服器端傳送資料(sendto)

3. 關閉套接字

控制台程式在使用之前須鏈結庫數:工程

->

設定->link->

輸入ws2_32.lib

控制台udp

伺服器端收發訊息

#include

#include

void main()

//判斷是否我們請求的

winsocket

版本,如果不是清除

socket

後退出

if ( lobyte( wsadata.wversion ) != 1 ||hibyte( wsadata.wversion ) != 1 )

//2.

建立套接字

-----------sock_dgram

資料報udp

socket socksrv = socket(af_inet,sock_dgram,0);

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

//3.

伺服器端繫結

bind (socksrv,(sockaddr*)&addrsrv,sizeof(sockaddr));

//申請變數

char recvbuf[100];

char sendbuf[100];

char tempbuf[100];

sockaddr_in addrclient;

int len = sizeof(sockaddr);

//伺服器端迴圈接收

while(1)

sprintf(tempbuf,"%s say: %s", inet_ntoa(addrclient.sin_addr),recvbuf);

printf("%s/n",tempbuf);

printf("please input data:/n");

//傳送訊息

gets(sendbuf);//

可以得到一行資料

sendto(socksrv,sendbuf,strlen(sendbuf)+1,0,(sockaddr*)&addrclient,len);}

closesocket(socksrv);

wsacleanup();

}控制台udp

客戶端接收訊息

#include

#include

void main()

//判斷是否我們請求的

winsocket

版本,如果不是清除

socket

後退出

if ( lobyte( wsadata.wversion ) != 1 || hibyte( wsadata.wversion ) != 1 )

//2.

建立套接字

-----------sock_dgram

資料報udp

socket sockclient =

socket(af_inet,sock_dgram,0);

//3.

填充結構體

sockaddr_in addrsrv;

addrsrv.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");//

伺服器位址

addrsrv.sin_family = af_inet;

addrsrv.sin_port = htons(6000);

//申請變數

char recvbuf[100];

char sendbuf[100];

char tempbuf[200];

int len = sizeof(sockaddr);

//客戶端迴圈接收

while (1)

//客戶端顯示傳送內容

sprintf(tempbuf,"%s say: %s",inet_ntoa(addrsrv.sin_addr),recvbuf);

printf("%s/n",tempbuf); }

//關閉套接字

closesocket(sockclient);

wsacleanup();

}

編寫網路程式

為什麼需要htons ntohl ntohs htons 函式 2009 12 11 13 15 51 分類 在c c 寫網路程式的時候,往往會遇到位元組的網路順序和主機順序的問題。這是就可能用到htons ntohl ntohs htons 這4個函式。網路位元組順序與本地位元組順序之間的轉換函式...

python網路程式設計 socket udp協議

簡單來說,網路是用物理鏈路將各個孤立的工作站或主機相連在一起,組成資料鏈路,從而達到資源共享和通訊的目的。使用網路的目的,就是為了聯通多方然後進行通訊,即把資料從一方傳遞給另外一方。前面的學習編寫的程式都是單機的,即不能和其他電腦上的程式進行通訊。為了讓在不同的電腦上執行的軟體,之間能夠互相傳遞資料...

socket(UDP)客戶端程式

include include void main endof if 判斷是否我們請求的winsocket版本,如果不是 則呼叫wsacleanup終止winsocket的使用並返回 if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 end...