c socket TCP同步網路通訊

2022-04-08 22:57:22 字數 2309 閱讀 1554

socket就是套接字,它是引用網路連線的特殊檔案描述符,由三個基本要素組成:

1: addressfamily(網路型別)

2: sockettype(資料傳輸型別)

3:protocoltype(採用的網路協議)

下面是可用於ip通訊的套接字組合及其常用的屬性和方法

ip連線領域有兩種通訊型別:面向連線的和無連線的,這裡我要講的是面向連線的,使用tcp協議來建立兩個ip的值端點之間的會話,下面是它的基本步驟。

a:建立乙個套接字

b:繫結本機的ip和埠

c:使用listen()方法監聽別人發過來的東西

d:如果監聽到連線,則可以使用send/receive來執行操作

e:完成後使用close()方法進行關閉

工作原理如圖所示:

下面的例子中,伺服器向所有連線的客戶端傳送訊息,實現多播功能

using

system;

using

system.collections.generic;

using

system.net;

using

system.net.sockets;

using

system.text;

using

system.threading;

namespace

serverfinally

}catch

(exception ex)

}//廣播訊息,將資訊傳送至所有已連線的客戶端

public

static

void broadcastmessage(string

data)

else

}foreach (clientcon disconnect in

disconnectsockets)}}

}

服務端

using

system;

using

system.collections.generic;

using

system.net.sockets;

using

system.text;

namespace

serverfinally

//建構函式 呼叫的時候為cliet賦值

public

clientcon(socket s)

//接受客戶端傳送的資訊

public

void

receivemessage()

}else

}catch

(exception ex)}}

//傳送訊息

public

void sendmessage(string

data)}}

伺服器端輔助類

using

system;

using

system.net;

using

system.net.sockets;

using

system.text;

using

system.threading;

namespace

clientfinally

", client.remoteendpoint.tostring());

//開啟執行緒 接收訊息

t = new

thread(receivemessage);

t.start();

//通過死迴圈傳送訊息

while (true

)

bytes =encoding.utf8.getbytes(mes);

//傳送訊息

client.send(bytes);}}

catch

(exception e)

}//接收訊息

private

static

void

receivemessage()

}catch}}

}}

客戶端**

先啟動伺服器端,在啟動客戶端,效果如下

c socket TCP同步網路通訊

socket就是套接字,它是引用網路連線的特殊檔案描述符,由三個基本要素組成 1 addressfamily 網路型別 2 sockettype 資料傳輸型別 3 protocoltype 採用的網路協議 下面是可用於ip通訊的套接字組合及其常用的屬性和方法 ip連線領域有兩種通訊型別 面向連線的和...

Linux同步網路時間

linux伺服器執行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設定,但在做資料庫集群分片等操作時對多台機器的時間差是有要求的,此時就需要使用ntpdate進行時間同步 安裝 yum install ntpdate ntpdate簡單用法 ntpdate ip ntpda...

同步網路 SynchGHS演算法

1 這個演算法分層構造各元件。對於每個k,第k層的各元件構成了乙個生成森林,其中k層第一元件都包含一棵樹,該樹是mst的乙個子圖。k層的每個元件至少有2 k個節點。在每一層中,每個元件有乙個獨特的領導者節點。程序允許按乙個固定的輪數o n 來完成每層的工作。2 演算法從0層開始,各元件由單獨的節點組...