bs结构socket(udp)通信
来源:互联网 发布:java架构师必备技能 编辑:程序博客网 时间:2024/05/17 01:15
以前我所做的基于socket通信都是采用cs结构,现公司有一个项目需要在bs中反控设备,于是研究了一番,现将成果公布,方便以后查阅。
服务端:
#region udp int recv; byte[] data = new byte[1024]; //得到本机IP,设置TCP端口号 IPEndPoint ip = new IPEndPoint(IPAddress.Any, 2000); Socket newsock = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //绑定网络地址 newsock.Bind(ip); //等待客户机连接 Console.WriteLine("This is a Server,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{0}: ", Remote.ToString()); Console.WriteLine(Encoding.ASCII.GetString(data, 0, recv)); //客户机连接成功后,发送信息 string welcome = "hello,sean! "; //字符串与字节数组相互转换 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); } #endregionbs客户端(实际是发布iis所在的服务器):
public partial class _Default : System.Web.UI.Page { string host = ""; int port = 0; protected void Page_Load(object sender, EventArgs e) { } protected void Button2_Click(object sender, EventArgs e) { //int port = 5154; //host = "172.16.2.245"; port = Int32.Parse(this.txt_port.Value.Trim()); host = this.txt_ip.Value.Trim(); //创建终结点EndPoint IPAddress ip = IPAddress.Parse(host); IPEndPoint ipe = new IPEndPoint(ip, port); //把ip和端口转化为IPEndPoint的实例 UdpClient sender1 = new UdpClient(); //向服务器发送信息 string sendStr = this.txt_info.Value; byte[] bs = Encoding.ASCII.GetBytes(sendStr); //把字符串编码为字节 lock (this) { sender1.Send(bs, bs.Length, ipe); this.txt_info.Value = ""; Thread.Sleep(200); Receive(sender1); } } public void Receive(UdpClient sender1) { IPEndPoint RemoteIpEndPoint = new IPEndPoint(IPAddress.Any,2000); try { Byte[] receiveBytes = sender1.Receive(ref RemoteIpEndPoint); string returnData = Encoding.ASCII.GetString(receiveBytes); this.txt_info.Value=("message received " +returnData.ToString()); } catch (Exception e) { } } }需要考虑并发操作,我在前台有相关操作限制,特殊情况特殊考虑
0 0
- bs结构socket(udp)通信
- socket通信---UDP通信
- 基于Socket通信的BS结构文件服务器客户端的简易程序(1)
- 基于Socket通信的BS结构文件服务器客户端的简易程序(2)
- 基于Socket通信的BS结构文件服务器客户端的简易程序(3)
- socket网络通信(udp)
- socket网络通信(udp)
- mfc socket udp通信
- UDP Socket通信学习
- Socket ( Udp) 通信服务端
- socket (UDP通信)
- socket udp通信
- Socket之UDP通信
- UDP通信socket编程
- socket实现UDP通信
- UDP之socket通信
- Android:Socket UDP通信
- socket之UDP通信
- 收集整理 UI 原理解析
- Session 生命周期
- ecshop添加类似于精品,新品,热销的模块
- VC批量拷贝,移动,删除文件---SHFileOperation
- SDH网络之SSM
- bs结构socket(udp)通信
- LR:接口性能测试中发现的JAVA数据库连接池配置问题
- 某系统中有3个并发进程都需要4个同类资源,该系统不会发生死锁的最少资源数量?
- 美术学 必修课有哪些
- 一.mongodb分片之win7环境下模拟多节点添加与移除分片
- C# 小叙 Encoding (二)
- Python入门教程
- MVC3缓存(二): 页面局部缓存
- svn cleanup failed–previous operation has not finished; cleanup 死循环解决办法