Socket通訊 和 串列埠通訊 (有人的硬體)

2022-07-15 21:15:13 字數 3400 閱讀 2310

硬體採用的是「有人公司」的串列埠轉wifi模組。該模組可以實現串列埠透傳。

軟體如下

硬體模組設定為 tcp server  

using

system;

using

system.windows.forms;

using

system.io.ports;

using

system.io;

using

system.net;

using

system.net.sockets;

using

system.threading;

using

system.text;

namespace

socket串列埠

//////

開啟軟體載入專案

/// ///

///private

void frmmain_load(object

sender, eventargs e)

#region 串列埠部分

#region 定義變數serialport sp = new

serialport();

bool isopen = false;//

開啟串列埠標誌位

#endregion

//////

載入當前系統當中可用的串列埠

/// void

serialport()

foreach (string port in

system.io.ports.serialport.getportnames())

//新增波特率

cbx_baude_rate.items.add("

1200");

cbx_baude_rate.items.add(

"2400");

cbx_baude_rate.items.add(

"4800");

cbx_baude_rate.items.add(

"9600");

cbx_baude_rate.items.add(

"19200");

cbx_baude_rate.items.add(

"38400");

cbx_baude_rate.items.add(

"43000");

cbx_baude_rate.items.add(

"56000");

cbx_baude_rate.items.add(

"57600");

cbx_baude_rate.items.add(

"115200");

cbx_baude_rate.selectedindex = 3

; cbx_port.selectedindex = 0

; }

#region 開啟和關閉串列埠資源

private

void

setportproperty()

void

openserialport()

catch

}void

closeserialport()

catch

}private

void btn_open_port_click(object

sender, eventargs e)

}//////

串列埠接收字元事件

/// ///

///private

void sp_datareceived(object

sender, serialdatareceivedeventargs e)

void show_port_msg(string

str)

\r\n");

}private

void btn_close_port_click(object

sender, eventargs e)

}#endregion

//////

在串列埠接收視窗顯示當前接收到的資料

/// ///

接收到的具體資料

public

void showtxt(string

a)

}#region 傳送視窗是否有資料 bool型別 checksenddata()

private

bool checksenddata()//

檢查傳送資料視窗是否有資料

private

void btn_com_port_send_click(object

sender, eventargs e)

else

}catch

}#endregion

#region 傳送串列埠資料 btn_send_click事件

private

void btnsend_click(object sender, eventargs e)//

傳送串列埠資料

else

catch

(exception)}}

else

}#endregion

#endregion

#region socket部分

#region socket相關的定義變數socket socketsend;

#endregion

//////

socket傳送資料

/// ///

///private

void btn_send_click(object

sender, eventargs e)

//////

建立socket連線

/// ///

///private

void btn_start_click(object

sender, eventargs e)

catch

}void showmsg(string

str)

\r\n");

}//////

不停的接受伺服器發來的訊息

/// void

recive()

string s = encoding.utf8.getstring(buffer, 0

, r);

showmsg(socketsend.remoteendpoint + "

:" +s);

}catch}}

#endregion

}}

最後實現了

串列埠與socket通訊

到資訊。對於那種需要很長時間才能完成的操作來說,重疊i o機制尤其有用,因為發起 重疊操作的執行緒在重疊請求發出後就可以自由地做別的事情了。在windows nt 2000上,提供真正可擴充套件的i o模型就是使用完成埠 completion port 的重疊i o。可以把完成埠看成系統維護的乙個佇...

串列埠轉socket通訊

做了乙個串列埠轉socket的通訊。大概意思就是開發板串列埠收到的資訊。通過socket傳出去 這裡因為是要用到socket。所以要實現wifi模組的sta模式。因為我這是單串列埠線。我實現的是串列埠線實現接收到的資訊。遠端網路ssh登陸的開發板。給串列埠傳資訊我用的w7端的串列埠除錯助手。sock...

串列埠與socket通訊

2.完成埠建立成功後,在socket和完成埠之間建立關聯。再次呼叫createiocompletionport 函式,這一次在第1個引數filehandle傳入建立的socket控制代碼,引數existingcompletionport 為已經建立的完成埠控制代碼。以下 建立了乙個socket並把它...