Socket程式設計 C C 伺服器開發 阻塞模式

2021-08-17 09:28:09 字數 1820 閱讀 5090

// 定義servercode.cpp: 程式入口

// #include #include #include #ifdef win32

#include #include #pragma comment (lib, "wsock32.lib")

#endif // win32

int main(int argc, char* argv)

#endif // 防止socket版本過高

// 建立伺服器socket監聽

int s = socket(af_inet, sock_stream, ipproto_tcp);

if (s == invalid_socket)

// 配置伺服器ip和埠

struct sockaddr_in socket;

socket.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

socket.sin_family = af_inet;

socket.sin_port = htons(6080);

ret = bind(s, (const struct sockaddr*)&socket, sizeof(socket));

if (ret != 0)

ret = listen(s, 1); //開啟監聽

while (1)

failed:

if (s != invalid_socket)

#ifdef win32

wsacleanup();

#endif // 清除wsadata

return 0;

}

// 定義clientcode.cpp: 程式入口

// #include #include #include #ifdef win32

#include #include #pragma comment (lib, "wsock32.lib")

#endif // win32

int main(int argc, char* argv)

#endif // 配置socket版本

int s = socket(af_inet, sock_stream, ipproto_tcp);

if (s == invalid_socket)

struct sockaddr_in socket;

socket.sin_addr.s_un.s_addr = inet_addr("127.0.0.1");

socket.sin_family = af_inet;

socket.sin_port = htons(6080);

ret = connect(s, (const sockaddr*)&socket, sizeof(socket));

if (ret != 0)

char buf[11];

memset(buf, 0, 11);

send(s, "金幣+1", 11, 0);

printf("%s\n", buf);

recv(s, buf, 11, 0);

printf("從伺服器接收到資訊: %s\n", buf);

failed:

if (s != invalid_socket)

closesocket(s);

#ifdef win32

wsacleanup();

#endif // 清理wsadata

system("pause");

return 0;

}

Socket程式設計獲取伺服器時間

客戶端向伺服器端傳送請求,伺服器收到請求做相應的處理,將處理結果傳回客戶端。下面採用tcp協議實現伺服器和客戶端之間的連線。1.客戶端 約定雙方的傳輸協議 udp或者tcp 根據傳輸協議建立socket 伺服器的ip位址和埠號 連線伺服器 獲取伺服器傳遞回來的資料。cpp include inclu...

伺服器模型 socket

伺服器模型 一 迴圈伺服器 迴圈伺服器在同一時刻只可以相應乙個客戶端請求 二 併發伺服器 併發伺服器在同一時刻可以相應多個客戶端的請求.迴圈伺服器 1.udp伺服器 udp迴圈伺服器的實現非常簡單 udp伺服器每次從套接字上讀取乙個客戶端的請求,處理,然後將結果返回給客戶機.可以用下面的演算法來實現...

伺服器開發 Socket通訊例項(二)

客戶端的例子過程比較簡單 1 先建立socket 2 建立connect 3 接收 傳送 注意是接收是阻塞模式 客戶端 chatclient.cpp chatclient.cpp created on 2012 9 29 author root include clientsocket.h incl...