Linux網路程式設計 基於TCP的多程序

2021-08-02 02:29:29 字數 1902 閱讀 8540

客戶端**:

#include 

#include

#include

#include

#include

#include

#include

#include

static usage(const

char* proc)

int main(int argc, char** argv)

int sock = socket(af_inet, sock_stream, 0);

struct sockaddr_in server;

if(sock < 0)

server.sin_family = af_inet;

server.sin_addr.s_addr = inet_addr(argv[1]);

server.sin_port = htons(atoi(argv[2]));

if(connect(sock ,(struct sockaddr*)&server, sizeof(server) ) < 0)

char buf[1024];

while(1)

} close(sock);

}

服務端#include

#include //  

#include // socket() bind()

#include

#include

#include

#include

#include

static

void usage(const

char* proc)

// 建立並繫結乙個socket

int startup(const

char* _ip, int _port)

// 繫結乙個本地socket

struct sockaddr_in local;

local.sin_family = af_inet;

local.sin_addr.s_addr = inet_addr(_ip);

local.sin_port = htons(_port);

if(bind(sock, (struct sockaddr*)&local, sizeof(local)) != 0)

if(listen(sock, 5) != 0)

return sock;

} int main(int argc, char**argv)

// 獲取乙個local socket

int listen_sock = startup(argv[1], atoi(argv[2]));

struct sockaddr_in client;

socklen_t len = sizeof(client);

char buf[1024];

while(1)

pid_t id = fork();

if(id == 0)

// ///可以再這裡fork 然後退出子程序,這樣負責監聽的程序pid就不會一直變//

close(listen_sock); // 子程序已經獲得 sockfd, 不需要listen sock所以關閉

while(1)

else

if( s == 0)

else

break;

} exit(0);

} else

if (id > 0)

} return

0;

}

基於TCP的網路程式設計

伺服器端程式 include include pragma comment lib,ws2 32.lib int main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 printf version d.d n lobyte wsada...

基於TCP的網路程式設計

載入winsock庫,繫結ws2 32.lib動態鏈結庫 建立socket套接字 將套接字繫結 bind 到指定的本機ip位址和埠上 將套接字設為監聽模式 listen 準備接受客戶端的請求 等待客戶端請求的到來 accept 並返回新的套接字進行通訊 伺服器和客戶端相互通訊 send recv 返...

基於TCP 的網路程式設計步驟

基於tcp 伺服器端 1.建立乙個socket,用函式socket 2.繫結ip位址 埠等資訊到socket上,用函式bind 3.設定允許的最大連線數,用函式listen 4.等待來自客戶端的連線請求,用函式accept 5.收發資料,用函式send 和recv 或者read 和write 6.關...