客户端:

 private Socket socket;
private IPEndPoint ipEndPoint;
private void sendMessageHandler()
{
//服务端ip,端口为192.168.1.1,8085
ipEndPoint = new IPEndPoint(IPAddress.Parse("192.168.1.1"), );
socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
try
{
socket.BeginConnect(ipEndPoint, new AsyncCallback(connectHandler), socket);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
} private void connectHandler(IAsyncResult async)
{
Socket client = async.AsyncState as Socket;
try
{
if (client.Connected)
{
byte[] msg = Encoding.UTF8.GetBytes("hello");
try
{
System.Threading.Thread.Sleep();
socket.Send(msg, , msg.Length, SocketFlags.None);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
else
{
Console.WriteLine("没连接上");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

服务器端:

 /// <summary>
/// 数据类
/// </summary>
public class Client
{
public Socket Socket { get; set; }
public byte[] _buffer;
/// <summary>
/// 为该 Socket 开辟的缓冲区
/// </summary>
public byte[] Buffer
{
get
{
if (_buffer == null)
_buffer = new byte[ * ];
return _buffer;
}
}
} private Socket Server;
private void Begin()
{
Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
Server.Bind(new IPEndPoint(IPAddress.Any,));
Server.Listen();
Server.BeginAccept(new AsyncCallback(ClientConnectComplete), null);
}
private int _receiveCount = ;//用于统计本次接收到的字节数
private void ClientConnectComplete(IAsyncResult async)
{
Client client = new Client();
try
{
client.Socket = Server.EndAccept(async);
}
catch (Exception)
{
Server.BeginAccept(new AsyncCallback(ClientConnectComplete), null);
return;
}
Console.WriteLine(client.Socket.RemoteEndPoint + " 连接成功!"); try
{
_receiveCount = client.Socket.Receive(client.Buffer, , client.Buffer.Length, SocketFlags.None);
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
//接收的消息
string message = Encoding.UTF8.GetString(client.Buffer, , _receiveCount);
//继续接受下一个连接
Server.BeginAccept(new AsyncCallback(ClientConnectComplete), null);
}

服务器端接收UDP字节:

 private UdpClient udpClient;
private void ReceiveData()
{
udpClient = new UdpClient(int port);
IPEndPoint udpRemote=null;
while(true)
{
try
{
byte[] udpBytes=udpClient.Receive(ref udpRemote);
Console.Write(udpBytes.Length);
}catch(){}
}
}

WPF socket通讯 UDP接收消息的更多相关文章

  1. [读书笔记]python3.5实现socket通讯(UDP)

    UDP连接: 无连接,从一个端向另一端发送独立的数据分组 使用UDP连接的客户-服务器程序: UDPServer.py import socket serverPort = 50009 serverS ...

  2. [记读书笔]python3.5实现socket通讯(UDP)

    UDP连接: 无连接,从一个端向另一端发送独立的数据分组 使用UDP连接的客户-服务器程序: UDPServer.py import socket serverPort = 50009 serverS ...

  3. Linux 网络编程六(socket通信UDP版)

    //udp接收消息 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...

  4. 闲来无事,写个基于UDP协议的Socket通讯Demo

    项目一期已经做完,二期需求还没定稿,所以最近比较闲. 上一篇写的是TCP协议,今天写一下UDP协议.TCP是有连接协议,所以发送和接收消息前客户端和服务端需要建立连接:UDP是无连接协议,所以发送消息 ...

  5. socket通讯实例与TCP/UDP的区别

    一.socket代码实例 1.简单的socket通讯: 服务端代码实例: import socket sock = socket.socket(socket.AF_INET, socket.SOCK_ ...

  6. Udp实现消息的发送和接收、以及图片的上传

    //Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.Datagram ...

  7. JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

    JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...

  8. 基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)

    今天我们来盘一盘Socket通讯和WebSocket协议在即时通讯的小应用——聊天. 理论大家估计都知道得差不多了,小编也通过查阅各种资料对理论知识进行了充电,发现好多demo似懂非懂,拷贝回来又运行 ...

  9. python网络-Socket之udp编程(24)

    一.udp简介 udp --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议. udp不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地. udp在 ...

随机推荐

  1. [转]sql利用游标循环,遍历表循环结果集

    用 游标(Cursor) + While循环 的方法, 对Customers表中的CompanyName列进行遍历 ) declare pcurr cursor for select distinct ...

  2. JAVA集合学习

    JAVA中有几种常用的集合类.分别是List,Set,Map等 提示:Eclipse中自动导入包的快捷键  Ctrl+Shift+O 一.List类 父接口:该类是Collection集合接口的子接口 ...

  3. 翻译:wiki中的business logic词条

    Business logic 业务逻辑 From Wikipedia, the free encyclopedia 来自Wikipedia,自由的百科全书 In computer software, ...

  4. Messenger 弹窗的使用

    关于Messenger 弹窗的文档及详细的说明请参考 Messenger官网,这时只介绍 Messenger 弹窗的使用  messenger依赖与jquery和Backbone.js,可以和  Bo ...

  5. 洛谷P2735 电网 Electric Fences

    P2735 电网 Electric Fences 11通过 28提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 在本题中,格点是 ...

  6. 操作笔记:tomcat在正式环境

    1,一台服务器有两个容器,比如:jetty,tomcat. 出现问题: jetty启动的时候,tomcat就不能启动了. 此时,需要修改tomcat的配置文件:servler.xml <?xml ...

  7. SVN与TortoiseSVN实战:补丁详解

    硬广:<SVN与TortoiseSVN实战>系列已经写了五篇,第二篇<SVN与TortoiseSVN实战:标签与分支>和第三篇<SVN与TortoiseSVN实战:Tor ...

  8. angular.extend(dst, src)对象拓展

    angular.extend(dst, src) 作用:对象的拓展 参数:  dst:拓展的对象 src:源对象 返回值:拓展的对象 var dst = {name: 'xxx', country: ...

  9. ruby中symbol

    Symbol 是什么 Ruby 是一个强大的面向对象脚本语言(本文所用 Ruby 版本为1.8.6),在 Ruby 中 Symbol 表示“名字”,比如字符串的名字,标识符的名字. 创建一个 Symb ...

  10. Android IOS WebRTC 音视频开发总结(五二)-- 亲,咱一起采访webrtc大会的各路专家

    本文最早发自我的微信公众号,咱一起采访webrtc大会的各路专家,文章来自博客园RTC.Blacker,支持原创,转载必须说明出处. 亲,作为webrtc大会的推动者之一,大会期间不管是公共场合还是私 ...