推薦:ASP.NET中9條應(yīng)該遵守的代碼編寫規(guī)范寫了這么久程序代碼了,發(fā)現(xiàn)很多人的代碼很不規(guī)范。尤其在幾個人協(xié)作開發(fā)一個項目的時候,有些人寫的類名、變量名、方法等令人根本看不懂,可能會弄的整個項目都沒法組合完成。自認(rèn)為我的寫的代碼已經(jīng)很不錯了,至少能夠見名知意。不過,看完這9條后我覺得我
socket是基于TCP和UDP協(xié)議的高層接口,定義了收發(fā)數(shù)據(jù)的格式。Java的TCP服務(wù)中使用的Socket是一種流機制,即對于編程人員來說,處理socket只需要從Socket中獲取流,然后可以像處理本地流一樣來進行數(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機制提供了兩種實現(xiàn):一種是直接用Socket類,一種是使用對Socket再次封裝的TcpClient,UdpClient類來實現(xiàn)。.Net提供了一種統(tǒng)一的收發(fā)機制:NetworkStream。
TcpClient和Socket的底層都是通過NetworkStream來傳送數(shù)據(jù)的。它們都可以產(chǎn)生一個NetworkStream。例如:
TcpClient client = server.AcceptTcpClient();NetworkStream stream = client.GetStream();
.Net的socket和Java的socket在收發(fā)數(shù)據(jù)上的最大不同是:Java的socket可以像普通的流一樣操作。.Net的socket有多種實現(xiàn)方法,可以直接用Socket.send()來發(fā),也可以用NetwordStream來發(fā)送,也可以用TcpClient來發(fā)送。但是每種實現(xiàn)在收發(fā)數(shù)據(jù)的時候都是通過顯示的對緩沖區(qū)進行操作。例如:
byte[] datasize = new byte[4]; networkStream.Write(datasize,0,4);socket.Send(datasize, 0,datasize.Length, 0);
分享:分析.NET上執(zhí)行多線程應(yīng)該注意的兩點線程管理 線程管理現(xiàn)在變得越來越容易了。在.NET架構(gòu)中,你可以從線程池中獲取線程。線程池是一個生成線程的工廠,如果它已經(jīng)生成了一定數(shù)量的線程且還沒有被破壞的話,對它的調(diào)用會被阻止。但是,如何確保不會有太多的線程在規(guī)定時間內(nèi)運行?畢竟,如果每個
新聞熱點
疑難解答
圖片精選