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 訊號 在我學習的內容中,主要接觸了訊號來實現同步的機...