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 ();
}
}
}
查看全文
相关阅读:
【转】常用插件的使用—grunt入门指南(上)
基于Cordova的android项目入门
【转】隐藏元素的子元素隐藏无效
【转】IE7以下绝对定位被某元素遮挡
关于“No projects are found to import”的解决方法
【转】IE6中a标签触发图片和ajax请求被abort
JS小笔记
mysql删除重复数据
国内优秀的团队技术博客
mysql中的union和order by、limit
原文地址:https://www.cnblogs.com/94cool/p/2165807.html
最新文章
java socket模拟http请求
MySQL5.7.18安装说明
验证登陆后跳转原路径
linux系统 web在线日志分析
jfreechart环形图完美实现
jax-ws实现WebService
虚拟机固定IP访问外网配置
短网址
java静态代理,动态代理,cglib代理
Tomcat编码配置解疑
热门文章
linux常用工具集合
Web集群缓存一致性的思考
maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener
让xterm更舒服的设置
Maven安装使用
eclipse中运行项目时报Class not found的错误
ARGB-A%相应对比值 透明度
【转】12种JavaScript MVC框架之比较
关于 meta name="format-detection"
【转】ant 安装与配置
Copyright © 2011-2022 走看看