工作專案總結 八 之TCP IP通訊

2021-05-26 11:18:42 字數 3219 閱讀 4664

104、

查詢遠端埠已建立的連線,讀取字串

// 獲取字串

ipendpoint endpoint = tcpclient.client.remoteendpoint as ipendpoint;

//建立遠端埠監聽

tcplistener listener=new tcplistener(endpoint);

const int buffersize = 8192;

byte buffer = new byte[buffersize];

int bytesread; // 讀取的位元組數

listener.start();

tcpclient remoteclient = listener.accepttcpclient();

networkstream streamtoclient = remoteclient.getstream();

memorystream msstream = new memorystream();

dowhile (bytesread > 0);

buffer = msstream.getbuffer();

string msg = encoding.unicode.getstring(buffer);

105、

連線遠端埠,寫入命令

private void button2_click(object sender, eventargs e)

else

106、

執行時先執行server 再執行tcppclient 通過客戶端傳送資料

1://建立控制台程式 serverconsole

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.net; // 引入這兩個命名空間,以下同

using system.net.sockets;

class server

); tcplistener listener = new tcplistener(ip, 8500);

listener.start(); // 開始偵聽

console.writeline("start listening ...");

// 獲取乙個連線,同步方法,在此處中斷

tcpclient remoteclient = listener.accepttcpclient();

// 列印連線到的客戶端資訊

console.writeline("client connected! <-- ",

remoteclient.client.localendpoint, remoteclient.client.remoteendpoint);

// 獲得流

networkstream streamtoclient = remoteclient.getstream();

doif (bytesread == 0) throw new exception("讀取到0位元組");

console.writeline("reading data, bytes ...", bytesread);

// 獲得請求的字串

string msg = encoding.unicode.getstring(buffer, 0, bytesread);

console.writeline("received: ", msg);

// 轉換成大寫並傳送

msg = msg.toupper();

buffer = encoding.unicode.getbytes(msg);

lock (streamtoclient)

console.writeline("sent: ", msg);

}catch (exception ex)

} while (true);

streamtoclient.dispose();

remoteclient.close();

console.writeline("\n\n輸入\"q\"鍵退出。");

dowhile (key != consolekey.q);

}}2://客戶端控制台程式tcppclient

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.net;

using system.net.sockets;

namespace tcppclient

catch (exception ex)

// 列印連線到的服務端資訊

console.writeline("server connected! --> ",

client.client.localendpoint, client.client.remoteendpoint);

networkstream streamtoserver = client.getstream();

console.writeline("menu: s - send, x - exit");

doconsole.writeline("sent: ", msg);

int bytesread;

buffer = new byte[buffersize];

lock (streamtoserver)

msg = encoding.unicode.getstring(buffer, 0, bytesread);

console.writeline("received: ", msg);

}catch (exception ex)

}} while (key != consolekey.x);

streamtoserver.dispose();

client.close();

console.writeline("\n\n輸入\"q\"鍵退出。");

dowhile (key != consolekey.q);}}

}

工作專案總結

前段時間做了乙個小工具,今天總結一下專案中使用到的技術 1.執行平台windows,介面用的mfc,介面比較簡單,主要用到 list control,edit control,combo box,radio button,button。都是一些常見的控制項,整體介面也很簡潔。遇到的問題 字串轉換的問...

miniftp專案總結(八)

最大連線數的限制 在session結構體重增加乙個num clients成員,在主線程式中,每當來乙個客戶端就使num clients 子程序在開啟會話前要進行最大連線數限制的檢查,只有小於最大連線數的限制才開啟會話。那麼子程序退出的時候如何對num clients進行維護呢?void check ...

TCP IP協議介紹之工作原理

tcp ip的通訊協議 這部分簡要介紹一下tcp ip的內部結構,為討論與網際網路有關的安全問題打下基礎。tcp ip協議組之所以流行,部分原因是因為它可以用在各種各樣的通道和底層協議 例如t1和x.25 乙太網以及rs 232序列介面 之上。確切地說,tcp ip協議是一組包括tcp協議和ip協議...