Linux TCP通訊示例

2021-10-13 20:15:15 字數 1606 閱讀 4282

tcp通訊流程

server.h

#include #include #include #include #include #include #include #define max_line 100

/* 用於將大寫字元轉換為小寫字元。引數為需要轉換的字串 */

void my_fun(char * p)

int main(void)

if(close(l_fd) == -1)

return 0;

}

client.c

#include #include #include #include #include #include #include #define max_line 100

int main(int argc, char *ar**)

bzero(&sin, sizeof(sin));

sin.sin_family = af_inet; /* 使用ipv4位址族 */

/* 和本機通訊,同一臺主機擔任伺服器和客戶端的角色 */

inet_pton(af_inet, "127.0.0.1", &sin.sin_addr);

sin.sin_port = htons(port); /* 埠號使用8000,必須和伺服器端的一致才行 */

sfd = socket(af_inet, sock_stream, 0); /* 建立套接字 */

connect(sfd, (const struct sockaddr *)&sin, sizeof(sin));

/* 主動連線伺服器 */

write(sfd, str, strlen(str) + 1); /* 傳送字串,該串包含『\0』結束符 */

/* 讀取伺服器程式發回的串,由於是同一臺主機通訊,不存在延時的問題。

* 但是在真正的網路環境中,要處理讀操作的延時問題。

*/ read(sfd, buf, max_line);

printf("recive from server: %s\n", buf); /* 列印該串 */

close(sfd); /* 關閉套接字,結束通訊 */

return 0;

}

makefile

all:server client

server:server.c

gcc server.c -o server

client:client.c

gcc client.c -o client

clean:

rm *.o server client

.phony:clean

測試

關於程式中用到的函式可直接在終端中使用命令:man 函式名

比如查詢socket函式用法資訊:man socket

linux TCP程式設計示例

linux tcp程式設計 主要是這幾個函式 socket send recv write read close 伺服器端專用 bind listen accept 客戶端專用 connect tcp客服端 tcp client.c tcp相關標頭檔案 include include include...

Socket通訊示例

一 最簡例程實現socket網路傳輸 伺服器端 比客戶端先執行 vi socket server.c 1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 include 9 include 10 includ...

NIO通訊示例

讀者可以將 拷貝到編譯器上跑一跑,如果看了注釋還有不懂的地方,可以參考 nio基礎 一 之buffer nio基礎 二 之channel nio基礎 三 之selector 第三篇尤為重要對看懂大體框架有很大意義。public class const 類說明 nio通訊客戶端 public clas...