Socket 双向通讯, usb socket 通讯

    

        Socket  双向通讯, usb socket 通讯             

        分类:             socket                   894人阅读     评论(0)     收藏     举报    

client

  /// <summary>    
        ///  发送消息到PC机的Tcp端口,默认端口为:8888 
        ///  </summary> 
        ///  <param name="info">要发送的消息</param>   
        ///  <param name="port">远程服务器端的TCP端口</param> 
        ///  <param name="errMsg">运行时发生的错误的提示信息</param> 
         public static void SendInfo(string info, int port) 
        {    
            
             try     
             {      
                 IPHostEntry host = Dns.GetHostEntry(Dns.GetHostName());
                 IPEndPoint localIpEndPoint = new IPEndPoint(host.AddressList[0], 0);  
                 IPHostEntry rhost = Dns.GetHostEntry("ppp_peer");
                 IPAddress rhost_ipaddr = rhost.AddressList[0];  
                 IPEndPoint RemoteIpEndPoint = new IPEndPoint(rhost_ipaddr, port);//远程服务器端
                 Byte[] sendBytes = Encoding.ASCII.GetBytes(info);
                 Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);          
                          
                     socket.Bind(localIpEndPoint);
                     socket.Connect(RemoteIpEndPoint);
                     socket.Send(sendBytes, SocketFlags.None); 
                     //  
               byte[] data=new byte[1024];
               int recv=socket.Receive(data);
               string stringdata=Encoding.ASCII.GetString(data,0,recv);
               MessageBox.Show(stringdata);
 
                    
             }        
             catch (Exception ex)  
             {            
               
                   
             }     
         }

 

server

 void cs()
        { 
            int recv;//用于表示客户端发送的信息长度
            byte[] data = new byte[1024];//用于缓存客户端所发送的信息,通过socket传递的信息必须为字节数组
            IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 9999);//本机预使用的IP和端口
            Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            newsock.Bind(ipep);//绑定
            newsock.Listen(10);//监听
           
            Socket client = newsock.Accept();//当有可用的客户端连接尝试时执行,并返回一个新的socket,用于与客户端之间的通信
            IPEndPoint clientip = (IPEndPoint)client.RemoteEndPoint;
            MessageBox.Show("connect with client:" + clientip.Address + " at port:" + clientip.Port);
            string welcome = "welcome here!";
            data = Encoding.ASCII.GetBytes(welcome);
            client.Send(data, data.Length, SocketFlags.None);//发送信息
            while (true)
            {//用死循环来不断的从客户端获取信息
                data = new byte[1024];
                recv = client.Receive(data);
                Console.WriteLine("recv=" + recv);
                if (recv == 0)//当信息长度为0,说明客户端连接断开
                    break;
                MessageBox.Show(Encoding.ASCII.GetString(data, 0, recv));
                //client.Send(data, recv, SocketFlags.None);
            }
          
            client.Close();
            newsock.Close();

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值