成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

網絡編程之TCP-IP socket編程

網絡 網絡管理
兩個網絡程序之間需要通信就需要在他們之間建立一個鏈接通道,這個通道就是由一個五元組組成。即是:協議、本地IP地址、本地端口號、遠程IP地址、遠程端口號。

兩個網絡程序之間需要通信就需要在他們之間建立一個鏈接通道,這個通道就是由一個五元組組成。

五元組:(協議、本地IP地址、本地端口號、遠程IP地址、遠程端口號)

socket編程原理

socket套接口

網絡程序之間通信是依靠socket套接口進行通信。

例如:主機A上面的QQ程序需要發送消息到主機B上面的QQ,步驟就是:

①主機A上面的QQ發消息存到主機A上面的socket中

②這個socket通過主機A的網絡管理軟件通過網絡接口卡傳到主機B中得網絡接口卡

③主機B的網絡接口卡接收到消息后再傳給主機B的網絡管理軟件再傳到主機B的socket中。

④然后主機B中得QQ讀取socket中得信息

套接口分類

①流式套接口(SOCK_STREAM)可靠的面向連接的數據傳輸服務(適用于TCP)

②數據報套接口(SOCK_DGRAM)無連接不可靠的雙向數據傳輸服務(使用與UDP)

③原始套接口(SOCK_RAM)很少用

socket編程原理

①服務端調用socket()函數開啟一個服務,就是創建一個套接口

②這個socket條用bind()函數把一個端口跟這個socket綁定

③調用listen()函數監聽客戶端的請求

④客戶端也調用socket()函數穿件一個請求服務的套接口,然后調用connect()函數請求連接

⑤服務端調用accept()函數接收請求連接,然后使用recv()函數從套接口讀數據,調用send()函數向套接口發送數據

⑥關閉套接口資源#p#

winsock API套接口連接的建立

①WSAStartup()檢查協議棧的安裝情況

②socket()函數創建套接口socket

SOCKET socket (
int af,//地址族AF_INET
int type,//套接口類型SOCK_STREAM(TCP),SOCK_DGRAM(UDP)
int protocol//協議字段IPPROTO_TCP, IPPROTO_UDP
)12345

③bind()綁定本地地址,就是把一個套接口與主機地址和端口號聯系起來。沒有錯誤返回0

int bind(
SOCKET s,//套接口
const struct sockaddr FAR* name,//IP地址和端口地址
int namelen//地址參數的長度
)12345

關于地址參數

struct sockaddr_in {
short sin_family;//必須是AF_INET
u_short sin_port;//16位端口號
struct in_addr sin_addr;//IP地址
char sin_zero[8];//一般是0
}123456

④監聽連接 listen() 當一個套接口創建好后,然后綁定好,就該調用listen()函數監聽連接請求了,沒有錯誤返回0

int listen(
SOCKET s,//已綁定了地址,還沒有建立連接的套接口
int backlog//指定正在等待連接的***隊列長度
)1234

⑤請求連接connect() 客戶端套接口創建好以后就可以調用這個函數進行連接

int connect(
SOCKET s,
const struct sockaddr FAR* name,
int namelen
)12345

⑥接收連接accept() 服務器接收客戶端的連接請求

SOCKET accept(
SOCKET s,//處于監聽狀態的套接口
struct sockaddr FAR* addr,//用來存放發出連接的那個客戶端的IP地址信息
int FAR* addrlen//客戶端接口地址的長度
)12345

#p#

winsock API基本數據傳輸

TCP使用的數據傳輸函數

①send()函數,在已連接的套接口上發送數據

int send(
SOCKET s,//已建立連接的套接口
const char FAR*buf,//字符緩沖區,內有將要發送的數據
int len,//即將發送的緩沖區的字符數
int flags//控制傳輸方式,可以是0
)123456

②recv()函數,從套接口接收數據

int recv(
SOCKET s,//已建立的套接口
char FAR* buf,//用于接收數據的緩沖區
int len,//緩沖區的長度
int flags//調用方式 ,正常為0
)123456

UDP使用的數據傳輸函數

①recvfrom()接收數據

int recvfrom(
SOCKET s,//一個套接口
char FAR* buf,//接收數據的緩沖區
int len,//緩沖區長度
int flags,//調用操作方式
struct sockaddr FAR* from//源地址,向誰要信息
int FAR* fromlen//
)12345678

②sendto()發送數據

int sendto(
SOCKET s,//套接口
const char FAR* buf,//將要發送數據的緩沖區
int len,//buf緩沖區長度
int flags,//調用方式
const struct sockaddr FAR* to,//目的套接口地址
int tolen//to所指地址長度
)12345678

#p#

winsock API連接與關閉套接口

①shutdown()關閉讀寫通道

shutdown(
SOCKET s,//套接口
int how//關閉時禁止那種操作
)1234

②colsesocket()關閉套接口

int closesocket(
SOCKET s
)123

③WSACleanup()終止使用winsock

int WSACleanup();
責任編輯:藍雨淚 來源: CSDN博客
相關推薦

2019-11-08 14:47:49

TCPIP網絡

2019-09-18 20:07:06

AndroidTCP協議

2014-11-21 09:16:23

TCPIP

2012-03-19 11:41:30

JavaSocket

2010-03-03 16:19:29

Python Sock

2015-10-21 10:24:05

TCPIP網絡協議

2013-03-27 13:26:04

Android開發Socket

2020-11-06 18:51:17

LinuxTCP服務器

2012-09-24 15:13:50

C#網絡協議TCP

2019-02-17 10:05:24

TCPSocket網絡編程

2015-10-16 09:33:26

TCPIP網絡協議

2015-10-19 09:34:42

TCPIP網絡協議

2012-03-19 10:55:27

JavaSocket

2016-11-04 21:37:16

PythonSocket

2019-02-12 15:04:09

2015-05-28 10:47:38

Unix網絡編程TCP

2012-03-01 20:32:29

iOS

2015-10-27 09:40:31

TCPIP網絡協議

2024-08-13 08:27:24

PythonTCP協議網絡編程

2013-03-26 12:46:23

Android開發So
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩色在线| 国产精久久久久久 | 亚洲国产精品一区二区久久 | 天天av网| 国产乱码一二三区精品 | 又黄又爽的网站 | 国产精品福利一区二区三区 | 一区二区三区久久 | ririsao久久精品一区 | www.精品国产 | 中文二区| 日本黄色一级片视频 | 日本视频在线播放 | 色婷婷av777 av免费网站在线 | 亚洲在线一区二区 | 日韩免费一区 | 在线免费av电影 | 国产伊人精品 | 亚洲精品免费在线 | 热久久国产 | 成人免费视频网址 | 成人性视频在线播放 | 天堂综合网| 日本黄色的视频 | 一级毛片免费视频观看 | 成人免费一区二区三区视频网站 | 欧美激情精品久久久久久 | 熟女毛片| 四虎国产 | 亚洲精品永久免费 | 亚洲高清在线免费观看 | 国产精品免费看 | 在线观看亚洲精品视频 | 91精品国产91久久久久久吃药 | 国产亚洲一区二区精品 | 国产一级视频在线观看 | 国产精品91视频 | 欧美综合久久久 | 日韩一区二区三区在线播放 | 亚洲日韩中文字幕一区 | 国产精品免费在线 |