PDA與PC基於Socket的同步

示例代碼如下:
PDA端:
string msg = "PDA_Ready";
private string SendMsgAndReciveMsg(string msg)
{
// 需要返回的字符串
string result = string.Empty;
try

byte[] sendmsg = System.Text.Encoding.UTF8.GetBytes(msg); 需要發送的信息
System.Net.Sockets.TcpClient tcpc = new TcpClient();
System.Net.IPAddress ip = System.Net.IPAddress.Parse(this.hostIP); IP地址字符串轉換在IP地址
System.Net.IPEndPoint ipendpoint = new System.Net.IPEndPoint(ip,this.port); 建立網絡連接端點
tcpc.Connect(ipendpoint);
tcpc.GetStream().Write(sendmsg,0,sendmsg.Length); 發送信息到PC
int i = tcpc.GetStream().Read(request,0,request.Length);讀取信息
result = Encoding.UTF8.GetString(request,0,i);
tcpc.Close();
return result;
}
catch(Exception ex)
{
 return result;
}
}

PC端:
啓動一個線程:
private System.Net.Sockets.TcpListener tcpl;
private System.Threading.Thread thread;
thread=new Thread(new ThreadStart(SendReceive));
thread.Priority=System.Threading.ThreadPriority.AboveNormal;
thread.Start();
接收與發送
private void SendReceive()
{
try
{
 ArrayList al=new ArrayList();   
 tcpl.Start();
 this.statusBarPanel1.Text = "正在監聽...";
 while(lisen)
 {
TcpClient tcpc = tcpl.AcceptTcpClient(); 
  NetworkStream tcpStream = tcpc.GetStream();     
  byte[] request=new byte[6144];
  int bytesRead = tcpStream.Read(request,0,request.Length);
  sbReceive = Encoding.UTF8.GetString(request,0,bytesRead);
  switch(sbReceive)
  {
   case "PDA_Ready":
   byte[] msg = Encoding.UTF8.GetBytes("Server_Ready");
   tcpStream.Write(msg,0,msg.Length);
    break;
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章