C# wm6透過udp協議和pc通訊
本文主要介紹瞭如何使用udp協議,多執行緒,讓ppc和pc在同一區域網進行簡單的文字收發。
說明:我的PPC端ip是192.168.0.102,伺服器端為192.168.0.100,請根據實際情況配置。
配置好後,就可以開始我們的程式設計了。
程式碼如下:
PPC Code
namespace SimpleTcp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBoxCallback = new AddListBoxItemCallback(AddListBoxItem);
}
// string senddate,readdate;
// NetworkStream ns;
delegate void AddListBoxItemCallback( string text);
AddListBoxItemCallback listBoxCallback;
private int port = 8001 ;
private UdpClient udpClient;
private void AddListBoxItem( string text)
{
// 如果listBoxReceive被不同的執行緒訪問則透過委託處理;
if (listBoxReceive.InvokeRequired)
{
this .Invoke(listBoxCallback, text);
}
else
{
listBoxReceive.Items.Add(text);
listBoxReceive.SelectedIndex = listBoxReceive.Items.Count - 1 ;
}
}
private void ReceiveData()
{
// 在本機指定的埠接收
udpClient = new UdpClient(port);
IPEndPoint remote = null ;
// 接收從遠端主機傳送過來的資訊;
while ( true )
{
try
{
// 關閉udpClient時此句會產生異常
byte [] bytes = udpClient.Receive( ref remote);
string str = Encoding.UTF8.GetString(bytes, 0 , bytes.Length);
AddListBoxItem( string .Format( " 來自{0}:{1} " , remote, str));
}
catch
{
// 退出迴圈,結束執行緒
break ;
}
}
}
/// 傳送資料到遠端主機
///
private void sendData()
{
UdpClient myUdpClient = new UdpClient();
IPAddress remoteIP = IPAddress.Parse(textBoxRemoteIP.Text);
if ( remoteIP == null )
{
MessageBox.Show( " 遠端IP格式不正確 " );
return ;
}
IPEndPoint iep = new IPEndPoint(remoteIP, port);
byte [] bytes = System.Text.Encoding.UTF8.GetBytes(textBoxSend.Text);
try
{
myUdpClient.Send(bytes, bytes.Length, iep);
myUdpClient.Close();
textBoxSend.Focus();
}
catch (Exception err)
{
MessageBox.Show(err.Message, " 傳送失敗 " );
}
finally
{
myUdpClient.Close();
}
}
private void button1_Click( object sender, EventArgs e)
{
udpClient.Close();
Application.Exit();
}
private void button2_Click( object sender, EventArgs e)
{
sendData(); 大連無痛人流哪家好
}
private void Form1_Load( object sender, EventArgs e)
{
// 獲取本機第一個可用IP地址
IPAddress myIP = IPAddress.Parse( " 192.168.0.100 " );
// 為了在同一臺機器除錯,此IP也作為預設遠端IP
textBoxRemoteIP.Text = myIP.ToString();
// 建立一個執行緒接收遠端主機發來的資訊
Thread myThread = new Thread( new ThreadStart(ReceiveData));
// 將執行緒設為後臺執行
myThread.IsBackground = true ;
myThread.Start();
textBoxSend.Focus();
}
}
}
客戶端就ok了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70005147/viewspace-2789186/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- TCP和UDP協議TCPUDP協議
- 無線通訊模組透過TCP/IP協議實現與PC端的資料傳輸TCP協議
- CP341+CM1241透過ASCII(自由口)協議通訊ASCII協議
- TCP 和 UDP 協議簡介TCPUDP協議
- Android與物聯網裝置通訊-UDP&TCP協議AndroidUDPTCP協議
- 通訊協議協議
- 傳輸層協議 TCP 和 UDP協議TCPUDP
- 通訊協議和網路協議有什麼區別協議
- modbus通訊協議協議
- web通訊協議Web協議
- HTTP通訊協議HTTP協議
- Redis 通訊協議Redis協議
- UDP 和 TCP 兩種協議簡介UDPTCP協議
- Socket:UDP協議小白UDP協議
- UDP協議詳解UDP協議
- Raft協議:通過TermId大的通過Raft協議
- UDP協議網路Socket程式設計(java實現C/S通訊案例)UDP協議程式設計Java
- 淺談TCP和UDP協議的區別TCPUDP協議
- 終於懂了TCP和UDP協議區別TCPUDP協議
- Python教程之udp和tcp協議介紹PythonUDPTCP協議
- 音視訊通訊——直播協議和視訊推流協議
- 透過原始碼理解Rarp協議原始碼協議
- 網路通訊協議協議
- Dubbo-通訊協議協議
- 串列埠通訊協議串列埠協議
- TCP/IP、UDP/IP協議TCPUDP協議
- TCP對應的協議和UDP對應的協議(簡單概述)TCP協議UDP
- 網路通訊協議-ICMP協議詳解!協議
- 網路通訊協議-TCP協議詳解!協議TCP
- 網路通訊協議-HTTP協議詳解!協議HTTP
- 網路通訊協議-SMTP協議詳解!協議
- Android程式設計師必知必會的網路通訊傳輸層協議——UDP和TCPAndroid程式設計師協議UDPTCP
- Golang 實現客戶端與伺服器端UDP協議連線通訊Golang客戶端伺服器UDP協議
- Android透過接收UDP訊息改寫程式配置AndroidUDP
- 即時通訊技術文集(第10期):IM通訊協議該選TCP還是UDP [共12篇]協議TCPUDP
- C# UDP通訊 ReceiveAsync() 一直等待問題C#UDP
- IIC通訊協議筆記協議筆記
- SPI通訊協議筆記協議筆記