這裡我寫的是服務端的**:直接貼上我的介面
下面貼上完整**:
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.net;
using system.net.sockets;
using system.text;
using system.threading;
using system.windows.forms;
namespace csharp_plc_socket
private
void
btn_start_click
(object sender,
eventargs e)
socket socketclient;
//傳送資料介面
void
accept
(object obj)
catch}}
void
receive
(object obj)
//執行緒傳遞物件只能是object型別的
//string str =encoding.utf8.getstring(msg, 0, msglen);
//顯示接收到的資料
send_by_plc.text =
(point.address +
"【"+ point.port +
"】:"
+ encoding.utf8.
getstring
(msg,
0, msglen));
console.
writeline
(point.address +
"【"+ point.port +
"】:"
+ encoding.utf8.
getstring
(msg,
0, msglen));
//反饋給client端
socketclient.
send
(encoding.utf8.
getbytes
(encoding.utf8.
getstring
(msg,
0, msglen)
+",got it"))
;}catch}}
private
void
form1_load
(object sender,
eventargs e)
}}
關於socket的**沒有什麼需要注意的地方,套路感覺都是一樣的,只要理清楚思路就可以了。
值得注意的是在這裡我需要在子執行緒上更新控制項,所以在最後加上了一段比較重要的**(再記一次,寫的時候忘記了)
private
void
form1_load
(object sender,
eventargs e)
this
.load +
=new
system.eventhandler
(this
.form1_load)
;
原理的話就是委託,很多博文都有寫
最後使用sockettool進行了測試,連線伺服器,連線客戶端,傳送資料都沒有問題。
就是不知道為什麼漢子傳過去變成亂碼了,如下圖:
emmmmm花了好多天才交了差,不得不說在家裡的效率真是太低了。簡單問題複雜化,我真是佩服我自己,哈哈哈。
C 後台程式設計一 socket通訊
最近要寫一些計算機網路的一些實驗,所以最近寫一些linux平台下的後台程式設計,使用c 語言編寫。沒有了windows下的ide,所以用的是記事本編寫cpp檔案,主要寫了兩個cpp檔案,乙個server,另乙個client,先上 有時間再講解 的意思。include include include ...
C 實現Socket通訊
using system using system.collections.generic using system.linq using system.text using system.net using system.net.sockets class program static socke...
C 使用Socket通訊
socket包括ip位址和埠號兩部分,程式通過socket來通訊,socket相當於作業系統的乙個元件。socket作為程序之間通訊機制,通常也稱作 套接字 用於描述ip位址和埠號,是乙個通訊鏈的控制代碼。注意 socket不僅可以在兩台電腦之間通訊,還可以在同一臺電腦上的兩個程式間通訊。socke...