/srv
#include
#include
void main()
if (lobyte(wsadata.wversion) != 1 ||
hibyte(wsadata.wversion) != 1)
socket socksrv = socket(af_inet, sock_stream, 0);
socket socksrv = socket(af_inet, sock_dgram, 0);//udp和tcp的不一樣的地方
sockaddr_in addrsrv;
addrsrv.sin_addr.s_un.s_addr = htonl(inaddr_any);
addrsrv.sin_family = af_inet;
addrsrv.sin_port = htons(6602);
bind(socksrv, (sockaddr*)&addrsrv, sizeof(sockaddr));
///listen(socksrv, 5);//udp不需要;
sockaddr_in addrclient;
char recvbuf[100] = ;
int len = sizeof(sockaddr);
///udp不需要監聽和建立連線
//while (1)
//;//sprintf_s(sendbuf, 100, "welcome %s to ", inet_ntoa(addrclient.sin_addr));
//send(sockconn, sendbuf, strlen(sendbuf) + 1, 0);
//recv(sockconn, recvbuf, 100, 0);
recvfrom(socksrv,recvbuf,100,0,(sockaddr*)&addrclient,&len);///udp用recvfrom而不是recv
printf("%s\n", recvbuf);
///closesocket(sockconn);
closesocket(socksrv);
wsacleanup();
//}}
client
#include //加裁標頭檔案
#include //載入標準輸入輸出標頭檔案
void main()
if (lobyte(wsadata.wversion) != 2 ||
hibyte(wsadata.wversion) != 2)
///socket sockclient = socket(af_inet, sock_stream, 0);
socket sockclient = socket(af_inet, sock_dgram, 0);///udp是這樣設定的
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(6602);
///以上是和tcp一樣的!
///connect(sockclient, (sockaddr*)&addrsrv, sizeof(sockaddr));
/*char recvbuf[100] = ;
int len = sizeof(sockaddr);*///udp不需要
/recv(sockclient, recvbuf, 100, 0);
recvfrom(sockclient, recvbuf, 100, 0, (sockaddr*)&addrsrv, &len);///udp用recvfrom而不是recv
//printf("%s\n", recvbuf);
///以上udp不需要
///send(sockclient, "this is zhangsan12 ", strlen("this is zhangsan ") + 1, 0);
sendto(sockclient, "this is zhangsan123 ", strlen("this is zhangsan12345 ") + 1, 0, (sockaddr*)&addrsrv, sizeof(sockaddr));
closesocket(sockclient);
wsacleanup();
}
孫鑫MFC第十四講 網路程式設計
伺服器端 include include void main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 socket socksrv socket af inet,sock stream,0 sockaddr in addrsrv ...
第十四講 模組
1.模組 模組化指將乙個完整的程式分解成乙個個的小模組 通過將模組組合,來搭建出乙個完整的程式 模組化的優點 方便開發 方便維護 模組可以復用 模組的建立 在python當中乙個py檔案就是乙個模組 在乙個模組中引入外部模組 import模組名 模組名就是py檔案 可以引入同乙個模組多次,但是模組的...
C 銳利體驗 第十四講 列舉
第十四講 列舉 列舉型別是c 中又一種輕量級的值型別,c 用列舉來表達一組特定的值的集合行為,比如windows窗體可選的狀態,按鈕控制項的風格等。下面的程式偽碼展示了典型的列舉用法 public enum writingstyle class essay 注意上面的列舉符號classical,mo...