Socket程式設計的四種通訊方式

2021-08-30 02:18:53 字數 4013 閱讀 7156

tcp協議中伺服器端和客戶端必須建立起連線才能收發資料

udp協議中伺服器端和客戶端不需要建立連線,根據ip和埠號就能收發資料

1.基於連線和不連線

2.對系統資源的要求(tcp較多,udp較少)

3.udp結構簡單

4.流模式和資料報模式

5.tcp表示資料正確性,udp可能丟包,tcp保證資料資料,udp不保證

理解ip位址和埠號

1.有兩家公司,a公司和b公司,a公司有有小明a(經理),小紅a(職員),b公司有小明b(經理),小紅b(職員)。規定只有相同職位的人才可以交流

2.兩家公司有業務往來時,a公司的小明a(經理)和b公司的小明b(職員)交接,小紅a和小紅b交接。

3.此時,a公司和b公司相當於兩台電腦,a公司和b公司相互郵寄東西的位址相當於電腦的ip位址,小明a和小明b的經理職位相當於兩台電腦之間共有的軟體,小明a、小明b就是埠號。負責經理職位的相互通訊

4.a公司的小紅a想要找b公司的小紅b進行面談,小紅a要找到b公司的位址,再找到小紅b,才可以進行交流

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading.tasks;

namespace socket_tcp協議_伺服器端

);//建立ip位址

endpoint point = new ipendpoint(ipaddress,7788);//ipendpoint是對ip+埠號加了一層封裝的類,7788是埠號

tcpserve.bind(point);//向作業系統申請乙個可用的ip和埠號用來做通訊

//3.開始監聽(等待客戶端做連線)

console.writeline("開始監聽了");

tcpserve.listen(100);//引數是最大連線數

socket clientsocket= tcpserve.accept();//暫停當前執行緒,直到有乙個客戶端連線過來,進行下面的**

//使用返回的socket和客戶端做通訊

console.writeline("開始傳送訊息了");

//4.傳送給客戶端訊息

string message = "hello,歡迎你";

byte data =encoding.utf8.getbytes(message);//對字串做編碼,得到乙個字串的位元組陣列

clientsocket.send(data);

//5.接收來自客戶端的訊息

byte b = new byte[1024];

int length = clientsocket.receive(b);

string message3 = encoding.utf8.getstring(b,0,length);

console.writeline("接收乙個從客戶端發來的訊息:"+message3);

console.readkey();}}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading.tasks;

namespace socket_tcp協議_客戶端

}}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

namespace sock

.start();

// udpclient.close();//關閉socket

console.readkey();

}static void receivemessage()}}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading.tasks;

namespace udp_客戶端

udpclient.close();

console.readkey();}}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

namespace sock

stream.close();//網路流關閉

tcp.close();//連線關閉

lister.stop();//監聽關閉

console.readkey(); }}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading.tasks;

namespace udp_客戶端

stream.close();

tcpclient.close();

console.readkey();}}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

namespace sock

udpclient.close();

console.readkey(); }}

}

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading.tasks;

namespace udp_客戶端

udpclient.close();

console.readkey();}}

}

Mysql的四種通訊方式

老方式,先練一下審美 tcp ip套接字連線方式是mysql在任何平台都提供的一種連線方式,也是網路中使用最多的一種方式。那麼他們是怎麼連線上的嘞?假設我有兩台伺服器分別部署mysql資料庫客戶端 192.168.0.1 和mysql資料庫例項 192.168.0.2 兩者需要進行通訊,需要建立tc...

常見的四種網路程式設計方式

1 isapi程式設計 mfc中支援isapi的類有 2 cgi程式設計 cgi的工作原理介紹 cgi common gateway inte ce 是乙個web伺服器提供資訊服務的標準介面,通過這樣乙個介面,web伺服器能夠執行程式,並將程式輸出的資訊返回給瀏覽器。因為在web網上的資料都是靜態的...

Java 程序間通訊的四種方式

所謂程序通訊,就是不同程序之間進行一些 接觸 這種接觸有簡單,也有複雜。機制不同,複雜度也不一樣。通訊是乙個廣義上的意義,不僅僅指傳遞一些massege。他們的使用方法是基本相同的,所以只要掌握了一種的使用方法,然後記住其他的使用方法就可以了。1 訊號 在我學習的內容中,主要接觸了訊號來實現同步的機...