日期:2014-05-17 浏览次数:20916 次
UdpClient server = new UpdClient(port); //监听端口 IpEndPoint ipRemote; try{ byte[] buf = server.Receive(ref ipRemote); //堵塞在这里。将接收到的数据存放在buf,同时将客户端的Ip,端口信息保存在ipRemote变量中,这样就知道是谁发过来的数据了 string message = Encoding.Default.GetString(buf); 将byte转为string类型 }catch(Exception ex){ }
Thread th = new Thread(new ThreadStart(GetData)); th.IsBackground = true; th.Start();
this.Invoke(new 委托(functon),object[]{msg});
UdpClient client = new UdpClient(clientPort); //本机端口,通过这个端口号发送数据 IPEnPoint server = new IpEndPoint(IPAddress.Parse(serverHost,serverPort)); //制定服务器IP和端口 byte[] buf = Encoding.Default.GetByte(message); //将发送的消息转为字节数组 client.Send(buf,buf.length,server);
public event DataArriveHandler onDataArrived; //定义事件 //需要声明一个同名、同参数的方法 private void onDataArrived(byte[] ,IpEndpoint ep){ this.Invoke(....); //子线程更新主线程 } 调用 if(this.onDataArrived !=null){ onDataArrived(buf,clientep); }
public void Send(byte[] data,IPEndPoint endPont) { //data发送的数据;endPoint数据接收地址,也就是目的地址 this.Server.Send(data,data.length,endpont); //server=new UdpClient(port); 服务端监听端口 }
string hostname = Dns.GetHostName(); //取得当前主机名 IPAddress[] myIps = Dns.GetHostAddresses(hostname); //取得当前主机所有IP,多个网卡有多个地址 foreach(IPAddress ip in myIps){ string ip = address.ToString(); //还需要判断这个ip是否是需要的,比如只取得Ipv4的地址 }