当前位置: 首页 > news >正文

400网站建设办公郑州的网站建设公司有哪些

400网站建设办公,郑州的网站建设公司有哪些,wordpress 安装连接数据库出错,西安市工程建设信息网C#中简单Socket编程 Socket分为面向连接的套接字(TCP套接字)和面向消息的套接字(UDP 套接字)。我们平时的网络编程是对Socket进行操作。 接下来,我用C#语言来进行简单的TCP通信和UDP通信。 一、TCP通信 新建项目SocketTest,首先添加TCP通信的客户端代…

C#中简单Socket编程

Socket分为面向连接的套接字(TCP套接字)和面向消息的套接字(UDP 套接字)。我们平时的网络编程是对Socket进行操作。

接下来,我用C#语言来进行简单的TCP通信和UDP通信。

一、TCP通信

新建项目SocketTest,首先添加TCP通信的客户端代码,如下:

byte[]data = new byte[1024];Socket ClientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp);Console.WriteLine("Please write Server IPAdress:");string IPAdress = Console.ReadLine();Console.WriteLine();Console.Write("Please Write Server Port:");int nPort = Convert.ToInt32(Console.ReadLine());IPEndPoint IP = new IPEndPoint(IPAddress.Parse(IPAdress),nPort);try{ClientSocket.Connect(IP);}catch (SocketException e){Console.WriteLine("Can Not Connet Server!");Console.WriteLine(e.ToString());return;}int nRetByte = ClientSocket.Receive(data);string strData = Encoding.ASCII.GetString(data,0, nRetByte);Console.WriteLine(strData);while (true){string strInput = Console.ReadLine();if (strInput == "exit")break;String strSay = " Client Say:"; ClientSocket.Send(Encoding.ASCII.GetBytes(strSay + strInput));data = new byte[1024];nRetByte = ClientSocket.Receive(data);strData = Encoding.ASCII.GetString(data, 0, nRetByte);Console.WriteLine(strData);}Console.WriteLine("DisConnect From Server");ClientSocket.Shutdown(SocketShutdown.Both);ClientSocket.Close();

客户端套接字通信过程是:第一步:调用Socket类创建套接字。第二步:调用Connect()函数连接服务器。

TCP通信服务端代码如下:

 // 返回收到的字节数int nRetByte;byte[] data = new byte[1024];// IPEndPoint 将网络终结点表示为IP地址和端口号// IPAddress 提供网络协议IP地址IPEndPoint IPep = new IPEndPoint(IPAddress.Any,9050);// 实现 Berkeley套接字接口// AddressFamily:指定Socket类实例可以使用的寻址方案;// InterNetwork:IPV4版本的地址// SocketType:套集字类型;Stream:基于TCP的字节流类型// ProtocolType:协议的类型Socket newSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);// 使Socket与一个本地终结点相连newSocket.Bind(IPep);// 使Socket与处于监听状态newSocket.Listen(10);Console.WriteLine("Wait for a Client");// 为新建连接创建新的SocketSocket ClientSocket = newSocket.Accept();// RemoteEndPoint:获取远程终结点IPEndPoint ClientTip = (IPEndPoint)ClientSocket.RemoteEndPoint;Console.WriteLine("Connect with Client:"+ ClientTip.Address + "at Port:"+ ClientTip.Port);string strWelcome = "Welcome to Server,You Can Send Data To Server";// 获取ASCII字符集的编码// GetBytes将指定字符串中所有的字符编码为一个字节序列data = Encoding.ASCII.GetBytes(strWelcome);// 将数据发送到SocketClientSocket.Send(data);while (true){data = new byte[1024];// 从绑定的套接字接受数据,将数据存入接受缓冲区nRetByte = ClientSocket.Receive(data);Console.WriteLine("Receive Data from Client, Data Size is {0} Bit",nRetByte);if (nRetByte == 0)break;Console.WriteLine(Encoding.ASCII.GetString(data,0,nRetByte));string strInput = Console.ReadLine();if (strInput == "exit")break;String strSay = "Server Say:";ClientSocket.Send(Encoding.ASCII.GetBytes(strSay + strInput));Console.WriteLine(strInput);}Console.WriteLine("DisConnect from ClientAddress",ClientTip.Address);ClientSocket.Close();newSocket.Close();

TCP通信服务端的通信过程是:第一步调用Socket创建套接字。第二步:调用Bind()函数将套接字绑定到指定的IP地址和端口号。第三步:调用Listen()函数监听套接字。第四步:调用Accept()函数等待客户端连接。上述代码执行结果如下:

Snipaste_2024-07-09_23-13-02

这个测试使用本地回环地址127.0.0.1。

二、UDP通信

UDP通信是面向消息的通信方式。它具有快速不可靠的特点。UDP通信中客户端的过程:

第一步:创建套接字。第二步调用connect函数连接服务器(这一步是可选的,可以写可以不写)。具体代码如下:

 byte[] data = new byte[1024];string strInput, strData;// 定义一个源IP地址// Parse:IP地址字符串转换为IPAdress实例IPEndPoint ClientIP = new IPEndPoint(IPAddress.Parse("127.0.0.1"),9050);// 定义一个基于UDP协议的SocketSocket ClientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);string strWelcome = "Hello are you Here?";data = Encoding.ASCII.GetBytes(strWelcome);// 向服务器发送指定字节的数据ClientSocket.SendTo(data,data.Length, SocketFlags.None,ClientIP);IPEndPoint IPSender = new IPEndPoint(IPAddress.Any,0);EndPoint IPRemote = (EndPoint)IPSender;data = new byte[1024];int nRevByte = ClientSocket.ReceiveFrom(data,ref IPRemote);Console.WriteLine("Receive Data From Server:{0}", IPRemote.ToString());Console.WriteLine(Encoding.ASCII.GetString(data,0, nRevByte));while (true){// 从标准输入流中读取下一行字符strInput = Console.ReadLine();if(strInput=="exit")break;// 将从控制台中获取的数据发送到服务器端,并且接收服务器端发回的数据ClientSocket.SendTo(Encoding.ASCII.GetBytes(strInput), IPRemote);data = new byte[1024];nRevByte= ClientSocket.ReceiveFrom(data, ref IPRemote);strData= Encoding.ASCII.GetString(data,0, nRevByte);Console.WriteLine(strData);}Console.WriteLine("StopClient");ClientSocket.Close();

UDP通信服务器端通信过程:

第一步:创建套接字。第二步:将套接字绑定到指定IP地址和端口号。第三步:接收客户端的数据。具体代码如下:

int nRecvByte;byte[] data = new byte[1024];// 定义一个网络端点IPEndPoint IPAdress = new IPEndPoint(IPAddress.Any,9050);// 定义一个数据报类型的Socket// SocketType.Dgram:使用数据报协议// ProtocolType:UDP协议Socket ClientSocket = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);// Socket与本地的终端结点绑定ClientSocket.Bind(IPAdress);Console.WriteLine("Wait For a Client!");// 定义一个要发送的IP地址IPEndPoint Sender = new IPEndPoint(IPAddress.Any,0);EndPoint IPRemote = (IPEndPoint)Sender;// 接受数据报并存储源终结点nRecvByte = ClientSocket.ReceiveFrom(data,SocketFlags.None,ref IPRemote);Console.WriteLine("Message Receive From:{0}:", IPRemote.ToString());Console.WriteLine(Encoding.ASCII.GetString(data,0,nRecvByte));string strWelcome = "Welcome to My Test Server!";data = Encoding.ASCII.GetBytes(strWelcome);ClientSocket.SendTo(data,SocketFlags.None,IPRemote);while (true){//接收客户端的数据并且发回 data = new byte[1024];nRecvByte = ClientSocket.ReceiveFrom(data,ref IPRemote);Console.WriteLine(Encoding.ASCII.GetString(data,0, nRecvByte));ClientSocket.SendTo(data,IPRemote);}

UDP通信效果如下:

Snipaste_2024-07-09_23-31-17
好了,今天就介绍到这里。欢迎大家一起交流。源码:SocketTest

http://www.yayakq.cn/news/454707/

相关文章:

  • 清远网站开发国家中小学网络云平台
  • 做彩票网站捉怎么处理专业招牌制作价格
  • 苏州建设网站哪家好公司网站建设报告
  • 深圳网站关键词排名江门好的建站网站
  • 关于网站建设交易流程的描述一句话性价比高的域名备案加急
  • ftp服务器设置网站主页wordpress淘宝联盟转链
  • 98元建网站wordpress无法用qq邮箱验证
  • 网页设计与网站建设作业答案wordpress 分类字段
  • 可以做生存分析的网站wordpress不同分类目录页面显示文章数量不同
  • 做网站用什么软件初二推荐聊城网站建设
  • 怎么在自己的电脑上做网站泉州网站建设方案维护
  • 怀化优化网站排名营销型网站策划 pdf
  • 建立网站对吗优质服务的小企业网站建设
  • 写作墨问题 网站网加商学院的wordpress
  • 网站建设注册名有规范吗嘉兴五县两区网站建设
  • 网站购物车js代码怎么做上海猎头公司对个人怎么收费
  • 企业建站网站建站系统做二手车有哪些网站有哪些
  • 南阳市做网站景点旅游网站开发与设计
  • 网站建设域名怎么选择网站建设适应全屏如何自动
  • 网站开发人员绩效考核wordpress插件在哪
  • 随州做网站的公司网页设计实训报告总结免费
  • 为什么做儿童音乐网站wordpress页脚页脚插件
  • 好的app设计网站有哪些长春网站开发培训
  • 网站建设的卖点国内wordpress博客
  • 哪里有配音的网站七牛 wordpress 视频处理
  • 宝安区住房和建设局网站980网站
  • 京网站建设首选白龙马扬州百姓网免费发布信息网
  • asp网站建设运用的技术千锋教育
  • 重庆制作网站公司做网站卖什么产品利润高
  • 东莞我的网站建设安福相册网站怎么做的