客户端:

 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. 【caffe-windows】 caffe-master 之 mnist 超详细

    本教程尽量详细,大多步骤都有图,如果运行出错,请先对照自己的文件是否和图上的一样,包括标点啊,空格啊,斜杠,反斜杠啊之类的小细节. 第一步:   官网下载mnist数据 http://yann.lec ...

  2. WWF3追踪功能<WWF第六篇>

    WWF工作流提供了Tracking跟踪功能来对工作流实例及其所包含的活动在运行时的状态进行跟踪,以便用户在需要时可以通过这些历史信息进行分析.WWF的Tracking跟踪功能是通过"SqlT ...

  3. css的border效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 【Linux】Zabbix + MPM + msmtp + mutt 监控MySQL + 邮件报警

    Zabbix部署参考博文 http://blog.sina.com.cn/s/blog_5611597901017oe0.html  MPM安装配置参考博文和MPM官网下载地址 http://blog ...

  5. MySQL 使用方法简单教程

    1.启动MySQL服务器实际上上篇已讲到如何启动MySQL.两种方法:一是用winmysqladmin,如果机器启动时已自动运行,则可直接进入下一步操作.二是在DOS方式下运行 d:/mysql/bi ...

  6. spring+hibernate--直接修改数据库,再通过hibernate查询数据不变

    这个问题已经很多天了,一直没有时间解决,不过还好是自己的项目,没什么影响. 刚好今天没事,想好好解决一下这个问题. hibernate主要配置如下: <property name="h ...

  7. Boost C++: 网络编程1

    #include <iostream> #include <boost/asio.hpp> #include <boost/config/compiler/visualc ...

  8. BackgroundWorker Threads and Supporting Cancel

    http://www.codeproject.com/Articles/20627/BackgroundWorker-Threads-and-Supporting-Cancel BackgroundW ...

  9. Git 从服务器取得最新代码覆盖本地

    第一种方法 git fetch --all git reset --hard origin/master git fetch下载远程最新的, 然后,git reset master分支重置 第二种方法 ...

  10. 网络流量监控shell脚本

    网络收发包计数记录在 /proc/net/dev 文件中, 要取得流量, 只需要读取里面的内容两次, 然后相减, 再除以时间间隔即可. #!/bin/bash #Usage1,record in fi ...