01,申請乙個socket
02,繫結到乙個ip位址和乙個埠上
03,開啟偵聽,等待接收連線
01,申請乙個socket
02,連線伺服器(指明ip位址和埠號)
伺服器端接收到連線請求後,產生乙個新的socket(埠大於1024)與客戶端建立連線並進行通訊,原監聽socket繼續監聽。
注意:負責通訊的socket不能無限建立,建立的數量和作業系統有關。
public socket(addressfamily addressfamily,sockettype sockettype,protocoltype protocoltype)
sockettype:定義要開啟的socket的型別
socket類使用protocoltype列舉向windows sockets api通知所請求的協議
1,埠號必須在 1 和 65535之間,最好在1024以後。
2,要連線的遠端主機必須正在監聽指定埠,也就是說你無法隨意連線遠端主機。
3,如果只是在當前電腦上上執行需要使用127.0.0.1ip位址,192.x.x.x的需要使用網線連線其他主機。
如:ipaddress addr = ipaddress.parse("127.0.0.1");
ipendpoint endp = new ipendpoint(addr,,9000);
服務端先繫結:serverwelcomesocket.bind(endp)
客戶端再連線:clientsocket.connect(endp)
3,乙個socket一次只能連線一台主機
4,socket關閉後無法再次使用
5,每個socket物件只能與一台遠端主機連線。如果你想連線到多台遠端主機,你必須建立多個socket物件。
8.socket常用類和方法
方法:socket():建立乙個socket
bind():繫結乙個本地的ip和埠號(ipendpoint)
listen():讓socket偵聽傳入的連線吃那個病,並指定偵聽佇列容量
connect():初始化與另乙個socket的連線
accept():接收連線並返回乙個新的socket
send():輸出資料到socket
receive():從socket中讀取資料
close():關閉socket,銷毀連線
接下來,我們同乙個簡單的伺服器和客戶端通訊的案例,來看下sokcet的具體用法,效果圖如下:
下面是實現的**功能:
編寫工具:vs2015
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.net;
using system.net.sockets;
using system.text;
using system.threading;
using system.threading.tasks;
using system.windows.forms;
namespace socketserver
/// }
catch (exception ex)}}
///
/// 接受訊息
///
/// showlog(ex.message);
break;}}
private void button2_click(object sender, eventargs e)
catch (exception ex)
}private void button1_click(object sender, eventargs e)
catch (exception ex)}}
}客戶端實現**:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.net;
using system.net.sockets;
using system.text;
using system.threading;
using system.threading.tasks;
using system.windows.forms;
namespace scoketclient
socket client = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);
private void bt_statrconnet_click(object sender, eventargs e)
private void receiver()
catch (exception ex)}}
}///
/// 傳送訊息給伺服器
///
/// showlog(ex.message);}}}}}
c socket 網路通訊
1.服務端 流程 1 建立套接字,即呼叫socket 根據需要選擇引數型別 2 根據位址和埠號,繫結服務端,即呼叫bind 3 將套接字設為監聽套接字,並設定監聽數,即呼叫listen 4 阻塞等待等待客戶端連線請求,即呼叫accept 5 接受傳送訊息,即呼叫recv send 函式 6 關閉套接...
C Socket通訊例子
建立兩個工程檔案,server和client include include pragma comment lib,ws2 32.lib 靜態加入乙個lib檔案 pragma warning disable 4996 using namespace std intmain 繫結ip和埠 配置監聽位址...
C socket同步通訊
源博主鏈結 關於c socket通訊,分為同步和非同步通訊,本文簡單介紹一下同步通訊。通訊兩端分別為客戶端 client 和伺服器 server 1 建立乙個socket對像 2 用socket對像的connect 方法以上面建立的endpoint對像做為引數,向伺服器發出連線請求 3 如果連線成功...