socket伺服器和客戶端的建立步驟

2021-07-03 08:24:25 字數 1972 閱讀 2247

**

tcp程式設計的伺服器端一般步驟是:

1、建立乙個socket,用函式socket();

2、設定socket屬性,用函式setsockopt(); * 可選

3、繫結ip位址、埠等資訊到socket上,用函式bind();

4、開啟監聽,用函式listen();

5、接收客戶端上來的連線,用函式accept();

6、收發資料,用函式send()和recv(),或者read()和write();

7、關閉網路連線;

8、關閉監聽;

struct sockaddr_in addr; 定義乙個ip位址

tcp程式設計的客戶端一般步驟是:

1、建立乙個socket,用函式socket();

2、設定socket屬性,用函式setsockopt();* 可選

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選

4、設定要連線的對方的ip位址和埠等屬性;

5、連線伺服器,用函式connect();

6、收發資料,用函式send()和recv(),或者read()和write();

7、關閉網路連線;

udp程式設計的伺服器端一般步驟是:

1、建立乙個socket,用函式socket();

2、設定socket屬性,用函式setsockopt();* 可選

3、繫結ip位址、埠等資訊到socket上,用函式bind();

4、迴圈接收資料,用函式recvfrom();

5、關閉網路連線;

udp程式設計的客戶端一般步驟是:

1、建立乙個socket,用函式socket();

2、設定socket屬性,用函式setsockopt();* 可選

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選

4、設定對方的ip位址和埠等屬性;

5、傳送資料,用函式sendto();

6、關閉網路連線;

server.c

#include

#include

#include

#include

#include

#include

#include

#include

#define myport 3490

#define backlog 10

main()

my_addr.sin_family = af_inet;  //sin_family表示協議簇,一般用af_inet表示tcp/ip協議。

my_addr.sin_port = htons(myport);//設定埠號

//my_addr.sin_addr.s_addr = inet_addr("192.168.0.123");

my_addr.sin_addr.s_addr = inaddr_any;//auto-fill with local ip

bzero(&(my_addr.sin_zero), 8);

if (bind(sockfd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1)

if (listen(sockfd, backlog) == -1)

while(1)

printf("server: got connection from %s\n", inet_ntoa(their_addr.ain_addr));

if (!fork())

close(new_fd);

exit(0);

}while(waitpid(-1, null, wnohang) > 0);}}

#include

#include

#include

#include

#include

#include

int main()

C TCP 伺服器客戶端Socket程式設計

server.cpp include include using namespace std include define buf size 64 pragma comment lib,ws2 32.lib int main 建立監聽的socket sserver socket af inet,so...

linux 下socket 伺服器和客戶端非同步通訊

我們知道用socket進行通訊時,傳送資料和接收資料所使用的recv send函式會阻塞程序,只有收到或傳送資料後才能返回值,導致是socket通訊只能實現伺服器和客戶端交替收發資料,而使用select可以很好地解決這個問題。諸如connect accept recv或recvfrom這樣的阻塞程式...

socket實現Udp併發伺服器和客戶端

tcp 通訊 udp通訊 面向連線的,可靠資料報傳輸。對於不穩定的網路層,採取完全彌補的通訊方式。丟包重傳。無連線的,不可靠的資料報傳遞。對於不穩定的網路層,採取完全不彌補的通訊方式。預設還原網路狀況 穩定 資料流量穩定 速度穩定 順序穩定 不穩定 資料流量不穩定 速度不穩定 順序不穩定 傳輸速度慢...