zoukankan      html  css  js  c++  java
  • 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 ();            
            }


        }

    }

  • 相关阅读:
    ElasticSearch安装配置
    Hadoop新手篇:hadoop入门基础教程
    实用贴:hadoop系统下载安装教程
    超详细hadoop集群服务器安装配置教程
    Hadoop伪分布式环境搭建之Linux操作系统安装
    超详细Dkhadoop虚拟机安装图文教程
    hadoop集群管理系统搭建规划说明
    NLP汉语自然语言处理入门基础知识介绍
    hadoop最新发行稳定版:DKHadoop版本选择详解
    大数据hadoop入门之hadoop家族详解
  • 原文地址:https://www.cnblogs.com/easypass/p/2126267.html
Copyright © 2011-2022 走看看