C語言網路程式設計

2021-06-29 11:36:42 字數 2341 閱讀 7449

server : 埠號碼 numero of port

client :server的ip位址,以及開放的埠號碼

3個parameters,

domaine: af_inet -> ipv4

type: socket_stream

protocole: 當domaine有多種選擇的時候需要填寫,在tcp/ip下,一般為0

返還值: int, value of description

注:第乙個socket的值是3,第二個是4,那麼0,1和2是什麼呢?

0:stdin, 1:stdout, 2:stderr.

錯誤的返還值為負值,可以用下面的code來處理

int reuse = 1;

setsockopt(descripteurofsocket, sol_socket, so_reuseaddr, &reuse, sizeof(reuse));

struct sockaddr是乙個很模糊的結構

struct sockaddr 

;

相比之下,struct sockaddr_in的結構更易於操作。但是在api socket的使用中paramter是struct sockaddr,在構建之後要用(struct sockaddr)來強制轉換

in.h>

struct sockaddr_in

;

注:在建立struct socketaddr_in之後需要清零

struct sockaddr_in my_addr;

memset((char*)&my_addr, 0, sizeof(my_addr));//

在struct sockaddr_in的初始化中需要初始化sin_family, sin_port, sin_addr這三個引數。

sin_family: socket裡的domaine值

sin_port:server開放的藉口

sin_addr:只需要初始化sin_addr.s_addr即可。

比如

my_addr.sin_addr.s_addr=inaddr_any //任意可用介面ip為 0.0.0.0

//或者 inaddr_loopback 表示本地連線 127.0.0.1

網路格式(大端)

大端和小端是兩種在儲存上互為顛倒的格式,

這裡是詳細解釋

網路上通常使用大端,而我們的電腦根據處理器有不同的情況,但一般是小端。

int htonl(int host_long) // format machine -> format web

int htons(int host_short)

int ntohl(int host_long) // format web -> format machine

int htohs(int host_short)

另外我們平時的ip位址格式是小端,所以應該用這裡的函式轉化成大端再寫入struct sockaddr_in(這裡面所有的值都應該是大端模式的)

C語言網路程式設計基礎

一 基礎知識介紹 tcp 傳輸控制協議 和udp 使用者資料報協議是網路體系結構tcp ip模型中傳輸層一層中的兩個不同的通訊協議。tcp 傳輸控制協議,一種面向連線的協議,給使用者程序提供可靠的全雙工的位元組流,tcp套介面是位元組流套介面 stream socket 的一種。udp 使用者資料報...

程式語言 C語言網路資源

原文出自 c語言標準化組織iso jtc1 sc22 wg14的主頁,在這裡可以找到iso c的文件 the development of the c language 作者dennis ritchie,極為經典的 dan saks在embedded.com上的專欄programming point...

C語言網路程式設計基礎1 1

在有了前一章的基礎知識後,我想我們該進入下一步的學習了。一 socket的說明 二 internet套介面的兩種型別 一種是 stream sockets 另外一種是 datagram sockets 我們以後談到他們的時候也會用到 sock stream 和 sock dgram 流式套介面是可靠...