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 ();
}
}
}
查看全文
相关阅读:
用KNN算法分类CIFAR-10图片数据
特征处理(Feature Processing)
实际问题中如何使用机器学习模型
CS229 6.18 CNN 的反向传导算法
【Leetcode】【Medium】Single Number II
【Leetcode】【Medium】Single Number
【Leetcode】【Easy】Merge Two Sorted Lists
【Leetcode】【Easy】Valid Sudoku
【Leetcode】【Easy】Implement strStr()
【Leetcode】【Easy】Roman to Integer
原文地址:https://www.cnblogs.com/94cool/p/2165807.html
最新文章
浅谈Angular2与AngularJS的区别
Angular2配置文件详解
【转】浅谈JavaScript、ES5、ES6
Angular2常用命令
Angular2环境搭建
用hexo搭建自己的blog
javax.servlet-api-xx.jar和servlet-api.jar区别
Collections排序
linux用netstat查看服务及监听端口
【LeetCode】1.两数之和
热门文章
深度学习综述论文:从起源到具体算法
用强化学习做神经机器翻译
资源:车辆目标检测
如何快速选择最合适的物体检测框架:一个基于深度学习物体检测算法的简单测评
从神经网络到卷积神经网络(CNN)
基于深度学习的目标检测技术演进:R-CNN、Fast R-CNN、Faster R-CNN
Intorduction To Computer Vision
CS229 7.2 应用机器学习方法的技巧,准确率,召回率与 F值
CS229 7.1应用机器学习中的一些技巧
梯度下降之随机梯度下降 -minibatch 与并行化方法
Copyright © 2011-2022 走看看