談.Net和Java的socket機(jī)制比較_.Net教程
推薦:ASP.NET中9條應(yīng)該遵守的代碼編寫規(guī)范寫了這么久程序代碼了,發(fā)現(xiàn)很多人的代碼很不規(guī)范。尤其在幾個(gè)人協(xié)作開發(fā)一個(gè)項(xiàng)目的時(shí)候,有些人寫的類名、變量名、方法等令人根本看不懂,可能會弄的整個(gè)項(xiàng)目都沒法組合完成。自認(rèn)為我的寫的代碼已經(jīng)很不錯(cuò)了,至少能夠見名知意。不過,看完這9條后我覺得我
socket是基于TCP和UDP協(xié)議的高層接口,定義了收發(fā)數(shù)據(jù)的格式。Java的TCP服務(wù)中使用的Socket是一種流機(jī)制,即對于編程人員來說,處理socket只需要從Socket中獲取流,然后可以像處理本地流一樣來進(jìn)行數(shù)據(jù)的收發(fā)。
例如:
DataOutputStream outToClient =new DataOutputStream(socket.getOutputStream());
BufferedReader inFromClient =new BufferedReader(new InputStreamReader(socket.getInputStream()));
String requestMessageLine = inFromClient.readLine();
outToClient.writeBytes(requestMessageLine);
.Net的Socket機(jī)制提供了兩種實(shí)現(xiàn):一種是直接用Socket類,一種是使用對Socket再次封裝的TcpClient,UdpClient類來實(shí)現(xiàn)。.Net提供了一種統(tǒng)一的收發(fā)機(jī)制:NetworkStream。
TcpClient和Socket的底層都是通過NetworkStream來傳送數(shù)據(jù)的。它們都可以產(chǎn)生一個(gè)NetworkStream。例如:
TcpClient client = server.AcceptTcpClient();NetworkStream stream = client.GetStream();
.Net的socket和Java的socket在收發(fā)數(shù)據(jù)上的最大不同是:Java的socket可以像普通的流一樣操作。.Net的socket有多種實(shí)現(xiàn)方法,可以直接用Socket.send()來發(fā),也可以用NetwordStream來發(fā)送,也可以用TcpClient來發(fā)送。但是每種實(shí)現(xiàn)在收發(fā)數(shù)據(jù)的時(shí)候都是通過顯示的對緩沖區(qū)進(jìn)行操作。例如:
byte[] datasize = new byte[4]; networkStream.Write(datasize,0,4);socket.Send(datasize, 0,datasize.Length, 0);
分享:分析.NET上執(zhí)行多線程應(yīng)該注意的兩點(diǎn)線程管理 線程管理現(xiàn)在變得越來越容易了。在.NET架構(gòu)中,你可以從線程池中獲取線程。線程池是一個(gè)生成線程的工廠,如果它已經(jīng)生成了一定數(shù)量的線程且還沒有被破壞的話,對它的調(diào)用會被阻止。但是,如何確保不會有太多的線程在規(guī)定時(shí)間內(nèi)運(yùn)行?畢竟,如果每個(gè)
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實(shí)例(可帶附件)
- js實(shí)現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實(shí)現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報(bào)表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實(shí)例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實(shí)現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-談.Net和Java的socket機(jī)制比較
。