zoukankan
html css js c++ java
C# Udp Socket例子
服务器端:
using
System;
using
System.Collections.Generic;
using
System.Text;
using
System.Net;
using
System.Net.Sockets;
namespace
UDPServer
{
class
Program
{
static
void
Main(
string
[] args)
{
int
recv;
byte
[] data
=
new
byte
[
1024
];
//
构建TCP 服务器
//
得到本机IP,设置TCP端口号
IPEndPoint ipep
=
new
IPEndPoint(IPAddress.Any ,
8001
);
Socket newsock
=
new
Socket(AddressFamily.InterNetwork, SocketType.Dgram , ProtocolType.Udp);
//
绑定网络地址
newsock.Bind(ipep);
Console.WriteLine(
"
This is a Server, host name is {0}
"
,Dns.GetHostName());
//
等待客户机连接
Console.WriteLine(
"
Waiting for a client
"
);
//
得到客户机IP
IPEndPoint sender
=
new
IPEndPoint(IPAddress.Any,
0
);
EndPoint Remote
=
(EndPoint)(sender);
recv
=
newsock.ReceiveFrom(data,
ref
Remote);
Console .WriteLine (
"
Message received from {0}:
"
, Remote.ToString ());
Console .WriteLine (Encoding .ASCII .GetString (data ,
0
,recv ));
//
客户机连接成功后,发送欢迎信息
string
welcome
=
"
Welcome !
"
;
//
字符串与字节数组相互转换
data
=
Encoding .ASCII .GetBytes (welcome );
//
发送信息
newsock .SendTo (data ,data.Length ,SocketFlags .None ,Remote );
while
(
true
)
{
data
=
new
byte
[
1024
];
//
发送接受信息
recv
=
newsock.ReceiveFrom(data ,
ref
Remote);
Console .WriteLine (Encoding .ASCII .GetString (data ,
0
,recv));
newsock .SendTo (data ,recv ,SocketFlags .None ,Remote );
}
}
}
}
客户端:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Net;
using
System.Net.Sockets;
namespace
UDPClient
{
class
Program
{
static
void
Main(
string
[] args)
{
byte
[] data
=
new
byte
[
1024
];
string
input ,stringData;
//
构建TCP 服务器
Console.WriteLine(
"
This is a Client, host name is {0}
"
, Dns.GetHostName());
//
设置服务IP,设置TCP端口号
IPEndPoint ipep
=
new
IPEndPoint(IPAddress .Parse (
"
127.0.0.1
"
) ,
8001
);
//
定义网络类型,数据连接类型和网络协议UDP
Socket server
=
new
Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
string
welcome
=
"
Hello!
"
;
data
=
Encoding.ASCII.GetBytes(welcome);
server.SendTo(data, data.Length, SocketFlags.None, ipep);
IPEndPoint sender
=
new
IPEndPoint(IPAddress.Any,
0
);
EndPoint Remote
=
(EndPoint)sender;
data
=
new
byte
[
1024
];
//
对于不存在的IP地址,加入此行代码后,可以在指定时间内解除阻塞模式限制
//
server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 100);
int
recv
=
server.ReceiveFrom(data,
ref
Remote);
Console.WriteLine(
"
Message received from {0}:
"
, Remote.ToString());
Console.WriteLine(Encoding .ASCII .GetString (data,
0
,recv));
while
(
true
)
{
input
=
Console .ReadLine ();
if
(input
==
"
exit
"
)
break
;
server .SendTo (Encoding .ASCII .GetBytes (input ),Remote );
data
=
new
byte
[
1024
];
recv
=
server.ReceiveFrom(data,
ref
Remote);
stringData
=
Encoding.ASCII.GetString(data,
0
, recv);
Console.WriteLine(stringData);
}
Console .WriteLine (
"
Stopping Client.
"
);
server .Close ();
}
}
}
查看全文
相关阅读:
web性能优化
9.1_the end
8.28_the end
1.获取元素绝对位置
8.14_end
JavaScript 函数用途
JavaScirpt事件处理
《JavaScript语言精粹》读书笔记
《图解http协议》之HTTPs学习笔记
Laya 1.x 按文件夹TS代码合并
原文地址:https://www.cnblogs.com/zhangpengshou/p/1307622.html
最新文章
CSS3 transform属性
我的CSS初始化
CSS绘图
使用CSS3实现逐格动画
《你不知道的 CSS》之等比例缩放的盒子
CSS属性之attr()
箭头函数
es6 新特性整理
平时写react 小技巧
Eclipse中的项目红叉问题查找记录
热门文章
大日志文件拆分
eclipse选中参数高亮显示设置
解决tomcat7中request会对中文重新编码,导致后台接收到为encode编码后参数问题
jd-gui或jad反编译工具bug
tomcat官方下载地址
tomcat 配置http跳转https
列出文件夹中分级目录java
linux的iptables设置
多台虚机redis cluster集群
2015年末
Copyright © 2011-2022 走看看