WPF socket通讯 UDP接收消息
客户端:
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接收消息的更多相关文章
- [读书笔记]python3.5实现socket通讯(UDP)
UDP连接: 无连接,从一个端向另一端发送独立的数据分组 使用UDP连接的客户-服务器程序: UDPServer.py import socket serverPort = 50009 serverS ...
- [记读书笔]python3.5实现socket通讯(UDP)
UDP连接: 无连接,从一个端向另一端发送独立的数据分组 使用UDP连接的客户-服务器程序: UDPServer.py import socket serverPort = 50009 serverS ...
- Linux 网络编程六(socket通信UDP版)
//udp接收消息 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...
- 闲来无事,写个基于UDP协议的Socket通讯Demo
项目一期已经做完,二期需求还没定稿,所以最近比较闲. 上一篇写的是TCP协议,今天写一下UDP协议.TCP是有连接协议,所以发送和接收消息前客户端和服务端需要建立连接:UDP是无连接协议,所以发送消息 ...
- socket通讯实例与TCP/UDP的区别
一.socket代码实例 1.简单的socket通讯: 服务端代码实例: import socket sock = socket.socket(socket.AF_INET, socket.SOCK_ ...
- Udp实现消息的发送和接收、以及图片的上传
//Udp实现消息的发送和接收 import java.io.IOException; import java.net.DatagramPacket; import java.net.Datagram ...
- JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用
JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例, ...
- 基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
今天我们来盘一盘Socket通讯和WebSocket协议在即时通讯的小应用——聊天. 理论大家估计都知道得差不多了,小编也通过查阅各种资料对理论知识进行了充电,发现好多demo似懂非懂,拷贝回来又运行 ...
- python网络-Socket之udp编程(24)
一.udp简介 udp --- 用户数据报协议,是一个无连接的简单的面向数据报的运输层协议. udp不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地. udp在 ...
随机推荐
- 消除PyCharm中满屏的波浪线
PyCharm使用了较为严格的PEP8的检查规则,如果代码命名不规范,甚至多出的空格都会被波浪线标识出来,导致整个编辑器里铺满了波浪线,右边的滚动条也全是黄色或灰色的标记线,很是影响编辑. 在网上看了 ...
- Quartz.Net CronExpression表达式详解
Quartz.Net是我们常用的开源任务调度程序,其中最方便最强大的功能就是灵活多变的定时任务执行的支持.他靠什么来实现这个灵活的任务定时调度呢,就是咱们今天要详细分享的Cron Express表达式 ...
- Google Protocol Buffer 协议
1. Protocol Buffers 简介 Protocol Buffers (ProtocolBuffer/ protobuf )是Google公司开发的一种数据描述语言,类似于XML能够将结构化 ...
- OSGI.NET mainfest.xml 配置
在使用 OSGI.NET进行插件式的开发时,需要对 Mainfest.xml 进行配置, Mainfest 文件是插件的重要配置文件,其中暴露了插件启动方式以及插件启动时所依赖的程序集或其它资源的信息 ...
- php和apache安装心得
又一次安装apache和php~~ 又一次心碎的体验~ 本想参考之前的apache配置之间进行安装(在windows 下编辑,然后传到linux上),怎耐,一直有问题,打开浏览器直接进行下载.发现是浏 ...
- 洛谷P2264 情书
P2264 情书 88通过 971提交 题目提供者lin_toto 标签字符串 难度提高+/省选- 提交该题 讨论 题解 记录 最新讨论 yyy快把题目改回来 噫 这题的题目好逗啊... 情书std ...
- C#基础知识点
一.方法(结构.数组.冒泡排序.3个参数重载) 1将string转换为int类型 Convert.ToInt32(); int.Parse() ; int.TryParse()三种方式. 2 结构:可 ...
- openldap安装配置
http://www.jslink.org/linux/openldap-ssl-sssd.html http://www.unix-power.net/centos7/openldap.html h ...
- [转载]:Endnote 自定义style文件的默认位置
一般而言,安裝完EndNote 後,預設Output Styles.Filters.Connection Files 的電腦存放路徑如下– C:\Program Files\EndNote X4 ...
- 菜鸟学WEB开发 ASP.NET 5.0 1.0
在学习之初我要强调一点“微软要向跨平台开发”大举进军了,不管他能走多远,这是微软的必经之路. 一.学习流程: 创建ASP.NET APPLICATION 项目——项目结构——结构分析. 1.创建ASP ...