基本Socket通信流程
服務(wù)器常用模型
1.初始化Socket (用于監(jiān)聽)
1)初始化
SOCKET s ;
s = ?Socket ( ... )
2)綁定
bind(s, ...);
3)監(jiān)聽
listen(s, ...);
2.建立連接
1)檢查狀態(tài)
int ret = select ( ... ) ;
if ( ret > 0 ) {
//新連接
}
2)建立新連接 (如果有客戶端請求連接)
temp = accept ( ... ); ? // 注意,此時并不使用原來的Socket,而是新建一個Socket (temp)來跟客戶端通信
3.收發(fā)數(shù)據(jù)
1)檢測讀入數(shù)據(jù)
int ret = select ( ... )
if ( ret > 0 ) {
// 有新數(shù)據(jù)
}
2)接收數(shù)據(jù)
ret = ?recv ( ...);
3)檢查發(fā)送數(shù)據(jù)
int ret = select ( ... ) ;
4)發(fā)送數(shù)據(jù)
ret = send ( ... );
客戶端常用模型
1.初始化
1)創(chuàng)建Socket
s = Socket ( ... )
2)綁定端口
bind(s , ... ) ; ? // 客戶端的IP地址和端口都不需要固定,可由系統(tǒng)自動分配。因此可以不使用bind綁定端口與協(xié)議。
2.建立連接
connect( ... )
3.收發(fā)數(shù)據(jù)
同服務(wù)端
4.關(guān)閉連接
轉(zhuǎn)載于:https://www.cnblogs.com/fysola/p/4808966.html
總結(jié)
以上是生活随笔為你收集整理的基本Socket通信流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用字符串解析的方式完成计算器的设计思路
- 下一篇: 源代码管理GIT