C#实现读取IPv6 UDP Socket数据,再发送出去
C#实现读取IPv6 UDP Socket数据,再发送出去。
不知为何,黑框点一下就停止刷新了,再点一下,就继续刷新了。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace ConsoleApplication1
{
class Program
{
static Socket s1, s2, s3;
static int s1_rxcnt = ;
static int s2_txcnt = ;
static int s3_txcnt = ;
static void Main(string[] args)
{
s1 = new Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp);
s1.Bind(new IPEndPoint(IPAddress.IPv6Any, )); s2 = new Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp);
s2.Bind(new IPEndPoint(IPAddress.IPv6Loopback, )); s3 = new Socket(AddressFamily.InterNetworkV6, SocketType.Dgram, ProtocolType.Udp);
s3.Bind(new IPEndPoint(IPAddress.IPv6Loopback, )); Thread t = new Thread(ReciveMsg);//开启接收消息线程
t.Start();
} static void ReciveMsg()
{
byte[] buffer = new byte[];
int length;
while (true)
{
length = s1.Receive(buffer);
s1_rxcnt++; s2.SendTo(buffer, new IPEndPoint(IPAddress.IPv6Loopback, ));
s2_txcnt++; s3.SendTo(buffer, new IPEndPoint(IPAddress.IPv6Loopback, ));
s3_txcnt++; Console.WriteLine("s1_rxcnt: " + s1_rxcnt.ToString("D8") +
", s2_txcnt: " + s2_txcnt.ToString("D8") +
", s3_txcnt: " + s3_txcnt.ToString("D8"));
}
}
}
}
输出样式:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
s1_rxcnt: , s2_txcnt: , s3_txcnt:
Visual C#官方例子教程
https://docs.microsoft.com/zh-cn/visualstudio/ide/tutorial-3-create-a-matching-game?view=vs-2015
C#实现读取IPv6 UDP Socket数据,再发送出去的更多相关文章
- 项目总结22:Java UDP Socket数据的发送和接收
项目总结22:Java UDP Socket数据的发送和接收 1-先上demo 客户端(发送数据) package com.hs.pretest.udp; import java.io.IOExcep ...
- UDP(socket)数据访问和封装情况C++代码
配置QT下的pro文件 TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt LIBS += -lWs2_32 ...
- 用java在客户端读取mongodb中的数据并发送至服务器
使用Java自带的socket端口来实现,程序如下: Client.java package com.cn.gao; import java.net.*; import java.io.*; impo ...
- php从memcache读取数据再批量写入mysql的方法
这篇文章主要介绍了php从memcache读取数据再批量写入mysql的方法,可利用memcache缓解服务器读写压力,并实现数据库数据的写入操作,非常具有实用价值,需要的朋友可以参考下. 用 Mem ...
- TCP和UDP Socket
1.tcp协议的编程 * 1:客户端.步骤 * 1:创建Socket对象,构造方法里需要指定服务端的ip地址和端口. * Socket socket = new S ...
- Linux编程之UDP SOCKET全攻略
这篇文章将对linux下udp socket编程重要知识点进行总结,无论是开发人员应知应会的,还是说udp socket的一些偏僻知识点,本文都会讲到.尽可能做到,读了一篇文章之后,大家对udp so ...
- 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造
在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...
- 【转】Linux编程之UDP SOCKET全攻略
转自:http://www.cnblogs.com/skyfsm/p/6287787.html?utm_source=itdadao&utm_medium=referral 这篇文章将对lin ...
- 一个I/O线程可以并发处理N个客户端连接和读写操作 I/O复用模型 基于Buf操作NIO可以读取任意位置的数据 Channel中读取数据到Buffer中或将数据 Buffer 中写入到 Channel 事件驱动消息通知观察者模式
Tomcat那些事儿 https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650860016&idx=2&sn=549 ...
随机推荐
- Java开源工作流引擎Jflow表单方案系列讲解一
关键字: 驰骋工作流程快速开发平台 工作流程管理系统 工作流引擎 asp.net工作流引擎 java工作流引擎. 开发者表单 拖拽式表单 表单方案介绍 适配数据库: oralce,mysql,sq ...
- [Golang] 剑走偏锋 -- IoComplete ports
前言 Golang 目前的主要應用領域還是後臺微服務,雖然在業務領域也有所應用但仍然是比較小衆的選擇.大多數的服務運行環境都是linux,而在windows中golang應用更少,而作者因爲特殊情況, ...
- redis简单操作
一.redis 基础操作 1.1.string 类型及操作 string 是最简单的类型,一个key对应一个value,string类型是二进制安全的.redis的string可以包含任何数据. 1. ...
- sg函数的变形 - 可以将一堆石子分开
Nim is a two-player mathematic game of strategy in which players take turns removing objects from di ...
- 关于后缀间$LCP$的一些公式的证明
目录 关于\(LCP\)有如下两个公式: \(LCP~Lemma\) 的证明: \(LCP~Theorem\) 的证明: 关于\(LCP\)有如下两个公式: \(LCP~Lemma:\) 对任意 \( ...
- 关于爬虫的日常复习(16)—— pyspider的初高级用法
- 字典 pop
1.pop(key) 删除键值对,返回value2.若字典中没有这个key,则返回None,也可以自定义3.可用作if条件判断 来源: rest framework 框架 Serializer que ...
- 使用Razor 使用Razor表达式处理命名空间 精通ASP-NET-MVC-5-弗瑞曼
- js原型链和原型链的继承
每一个对象都有一个“_proto_”指针,指向实例化该对象的构造函数的原型对象,当该对象没有你想拿到的属性时,解释器会顺着指针不断向上找. 每一个构造你函数都有一个“prototype”属性,指向该构 ...
- Basic Thought / Data Structure: 前缀和 Prefix Sum
Intro: 在OI中,前缀和是一种泛用性很高的数据结构,也是非常重要的优化思想 Function: 求静态区间和 模板题:输入序列\(a_{1..n}\),对于每一个输入的二元组\((l,r)\), ...