C語言socket入門

2022-08-03 05:51:09 字數 1969 閱讀 8542

socket協議

三次握手與結束連線

客戶端**:

#include #include #include //for bzero

#include //for socketaddr_in

#include #include #include #define port 5050 //埠號

#define maxlen_for_data 1024//資料的最大長度

int main()

printf("sucessed: socket()\n");

//****連線********

serveraddr.sin_family = af_inet;

serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");

serveraddr.sin_port = htons(port);

len = sizeof(serveraddr);

ret = connect(clientfd, (struct sockaddr*)&serveraddr, len);

if (ret == -1)

printf("sucessed: connect() \n");

sprintf(buf, "%s \n", "hello world!");

ret = send(clientfd, (void*)buf, strlen(buf), 0);

if (ret <= 0)

printf("sucessed: send()\n");

exit:

close(clientfd);

clientfd = -1;

return 0;

}

伺服器:

#include #include #include //for bzero

#include //for socketaddr_in

#include #include #include #define port 5050

#define len_for_listen_queue 5

#define maxlen_for_data 1024

int main()

printf("sucessed: socket()\n");

//繫結位址和埠號

serveraddr.sin_family = af_inet;

serveraddr.sin_addr.s_addr = htonl(inaddr_any);

serveraddr.sin_port = htons(port);

len = sizeof(serveraddr);

ret = bind(serverfd, (struct sockaddr*)&serveraddr, len);

if (ret == -1)

printf("sucessed:bind()\n");

//建立套介面監聽佇列

ret = listen(serverfd, len_for_listen_queue);

if (ret == -1)

printf("sucess:listen()\n");

while (1)

printf("sucessed:accept()!\n");

//接受資料

ret = recv(clientfd, (void*)buf, maxlen_for_data, 0);

if (ret <= 0)

else

//關閉連線

close(clientfd);

printf("closed!\n"); }

exit:

return 0;

}

C語言SOCKET學習

常見的兩種套接字型別 sock stream tcp 流格式套接字 sock dgram udp 資料報套接字 基礎知識 struct sockaddr 基本不用 af inet是 ipv4 網路協議的套接字型別,af inet6 則是 ipv6 的 而 af unix 則是 unix 系統本地通訊...

C語言 socket 通訊程式設計

server端在tcp的通訊中,需要做到以下6點 socket套接字的構造 socket int socket int domain,int type,int protocol domain 指定通訊域 選擇通訊的協議族。type 型別,tcp為sock stream,udp為sock dgram。...

c語言入門

譚浩強版本的c語言教程學了兩個月什麼都沒學會,所以轉到c語言設計k r版本學習。2012年4月29日 15 39 14 1.入門 編乙個程式 請列印出下列內容 hello,world 程式源 如下 this is a first programe 收穫 1.乙個c語言程式,無論其大小如何,都是由函式...