zoukankan      html  css  js  c++  java
  • network-scoket

    server:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Net.Sockets;
    
    namespace net_server
    {
        class Program
        {
            static void Main(string[] args)
            {
                int get = 0;
                const int size = 512;
                Console.WriteLine("Server is Running...");
                IPAddress ip = new IPAddress(new byte []{127,0,0,1});
                //IPAddress ip = Dns.GetHostEntry("localhost").AddressList[0]; //另一种获取ip的方法
                TcpListener listener = new TcpListener(ip, 8500);
                listener.Start();  
                Console.WriteLine("start listenering ...");
               
                    TcpClient remoteclient = listener.AcceptTcpClient();//获取侦听,返回一个TcpClient
                    Console.WriteLine("client connected!{0}<---{1}", remoteclient.Client.LocalEndPoint, remoteclient.Client.RemoteEndPoint);
               
                    NetworkStream streamtoclient = remoteclient.GetStream();//得到客户端的数据流
                  do
                {
                     byte[] buffer = new byte[size];
                     try
                     {
                         lock (streamtoclient)
                         {
                             get = streamtoclient.Read(buffer, 0, size);//获得长度,这个方法是同步的,只有客户端发送数据才会执行,否则便会一直等待
                         }
                         Console.WriteLine("get ,{0} byte", get);
    
                         //获得请求字符创
                         string msg = Encoding.Unicode.GetString(buffer, 0, size);
                         Console.WriteLine("read:{0}", msg);
    
                         msg = msg.ToUpper();
                         buffer = Encoding.Unicode.GetBytes(msg);
                         lock (streamtoclient)
                         {
                             streamtoclient.Write(buffer, 0, buffer.Length);
                         }
                         Console.WriteLine("send:{0}", msg);
                     }
                     catch (Exception ex)
                     {
                         Console.WriteLine(ex.Message);
                         break;
                     }
                } while (true);
                  streamtoclient.Dispose();
                  remoteclient.Close();
                
                Console.WriteLine("
    
    输入"Q"键退出。");
                ConsoleKey key;
                do
                {
                    key = Console.ReadKey(true).Key;
                } while (key != ConsoleKey.Q);
            }
        }
    }

    client:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Net;
    using System.Net.Sockets;
    namespace net_client
    {
        class Program
        {
            static void Main(string[] args)
            {
                const int size =  512;
                Console.WriteLine("Client is running...");
                TcpClient client ;
                    try
                    {
                        client = new TcpClient();
                        client.Connect("127.0.0.1", 8500);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.Message);
                        return;
                    }
                    Console.WriteLine("Server connected!{0}--->{1}", client.Client.LocalEndPoint, client.Client.RemoteEndPoint);
                    
                    NetworkStream streamtoserver = client.GetStream();
                    ConsoleKey keys;
                    do
                    {   
                        keys = Console.ReadKey (true).Key;
                        if (keys == ConsoleKey.A)//当按下A键可以开始输入发送内容
                        {
                            string msg = Console.ReadLine();
                            byte[] buffer = Encoding.Unicode.GetBytes(msg);
                            try
                            {
                                lock (streamtoserver)
                                {
                                    streamtoserver.Write(buffer, 0, buffer.Length);
                                }
                                Console.WriteLine("send :{0}", msg);
    
                                int byteread = 0;
                                buffer = new byte[size];
                                lock(streamtoserver )
                                {
                                    byteread = streamtoserver .Read (buffer ,0,size);
                                }
                               
                                msg = Encoding .Unicode.GetString (buffer ,0,byteread );
                                Console .WriteLine ("server con:{0}",msg );
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex.Message);
                            }
                        }
                    }while(keys!=ConsoleKey.E);
                    streamtoserver.Dispose();
                    client.Close();
    
                    //Console.WriteLine("
    
    输入"Q"键退出。");
                    //ConsoleKey key;
                    //do
                    //{
                    //    key = Console.ReadKey(true).Key;
                    //} while (key != ConsoleKey.Q);
                
            }
        }
    }
    年轻过得闲,以后被人嫌... 年轻累不死....
  • 相关阅读:
    CentOS7 虚拟机搭建、初始设置、简单使用
    Oozie-4.0.0-cdh5.3.6搭建
    ionic开发环境搭建
    nodejs+chromium 创建桌面应用程序
    常用mysql笔记
    javascript 操作 css Rule
    javascript正则表达式笔记
    grunt之dev-pro环境切换
    grunt之入门实践
    动态加载js
  • 原文地址:https://www.cnblogs.com/hrx-star/p/3155365.html
Copyright © 2011-2022 走看看