基於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...