c# socket
基本程式設計一
同步字串的服務端與客戶端通訊
客戶端:
using
system;
using
system.collections.generic;
using
system.text;
using
system.net;
using
system.net.sockets;
namespace
client
catch (system.exception
ex)
console.writeline("server connect!-->", mytcpclient.client.localendpoint, mytcpclient.client.remoteendpoint);//
前者為本機埠,後者為伺服器端口
string
msg = console.readline();
networkstream
streamtoserver = mytcpclient.getstream();
byte buffer = encoding.unicode.getbytes(msg);
//將資訊打包
streamtoserver.write(buffer, 0, buffer.length); //
將資訊寫入網路流
console.writeline("sent:",msg); }
console.readline(); }
} }分析上面的程式:首先定義乙個「為
tcp網路服務提供客戶端連線」的
tcpclient
類的物件,這樣客戶端才能進行連線。然後進入迴圈(因為是多個客戶端連線)。
tcpclient
類的connect
函式的引數包括(本地埠號,連線端埠號)。
接下來的是向服務端輸出文字的部分。
networkstream
是提供用於網路訪問的基本資料流類,以
tcpclient
的例項物件所返回的用於傳送和接收的網路資料流進行
networkstream
進行初始化。然後將輸入的文字轉換成位元組序列「
byte
buffer = encoding.unicode.getbytes(msg);
//將資訊打包
」,然後這樣才能將位元組序列寫入網路資料流。
streamtoserver.write(buffer, 0, buffer.length); //
將資訊寫入網路流
這個函式的參數列對應是位元組序列,所讀取位元組的起始位置,位元組長度。
服務端:
using
system;
using
system.collections.generic;
using
system.text;
using
system.net;
using
system.net.sockets;
using
system.io;
namespace
server
);是本機的ip
tcplistener
mytcplistener = new
tcplistener(myip, 8500);
mytcplistener.start();
//偵聽可用連線
console.writeline("start listening...");
while (true)
<-", remoteclient.client.localendpoint, remoteclient.client.remoteendpoint);
networkstream
streamtoclient = remoteclient.getstream();
byte buffer = new
byte[bufferside];
intbytesread = streamtoclient.read(buffer, 0, bufferside);
console.writeline("reading data,byte...", bytesread);
string
msg = encoding.unicode.getstring(buffer, 0, bytesread);
//解碼傳輸資料
console.writeline("received:", msg); }
console.readline(); }
} }
分析上面的程式:首先定義本機,即服務端的位址,然後再以服務端ip和服務端埠號為引數例項化乙個網路偵聽的物件
tcplistener
(從tcp客戶端偵聽連線),tcplistener類的start()函式說明這個類的物件開始偵聽連線。
在迴圈中,「
tcpclient
remoteclient = mytcplistener.accepttcpclient();
」這一句以tcplistener所偵聽得到的乙個連線初始化乙個客戶端物件,然後以偵聽到的客戶端的網路資料流初始化乙個資料流物件。接著用這個資料流物件的read函式讀取流中的資料(這個時候仍然是位元組形式的)。然後再呼叫
encoding
.unicode.getstring(buffer, 0, bytesread)
,獲取流中字串。
C Socket程式設計
socket基本程式設計 服務端 using system.net using system.net.sockets using system.text using system.threading thread mythread socket socket 清理所有正在使用的資源。protecte...
c socket程式設計
對於socket在這裡我不想究其歷史,我只想說其時它是一種程序通訊的方式,簡言之就是呼叫這個網路庫的一些api函式就能實現分布在不同主機的相關程序之間的資料交換.socket中首先我們要理解如下幾個定義概念 二是埠號 用來標識本地通訊程序,方便os提交資料.就是說程序指定了對方程序的網路ip,但這個...
C Socket程式設計
socket程式設計的一般步驟 伺服器端 第一步 建立乙個用於監聽連線的socket對像 第二步 用指定的埠號和伺服器的ip建立乙個endpoint對像 第三步 用socket對像的bind 方法繫結endpoint 第四步 用socket對像的listen 方法開始監聽 第五步 接收到客戶端的連線...