zoukankan      html  css  js  c++  java
  • C# Tcp和Socket 网络(五)

    TcpReceive

     1 public Form1()
     2         {
     3             InitializeComponent();
     4             new Thread(() =>
     5             {
     6                 IPAddress ip = IPAddress.Parse(ip地址);
     7                 Int32 port = 13745;
     8                 TcpListener listen = new TcpListener(ip, port);
     9                 listen.Start();
    10                 TcpClient tc = listen.AcceptTcpClient();
    11 
    12                 NetworkStream ns = tc.GetStream();
    13                 StreamReader sr = new StreamReader(ns);
    14                 string result = sr.ReadToEnd();
    15 
    16                 Invoke(new MethodInvoker(delegate() { textBox1.Text = result; }));
    17                 sr.Close();
    18                 ns.Close();
    19                 tc .Close();
    20                 listen.Stop();
    21 
    22 
    23             }).Start();
    24         }

    TcpSend

     1  public partial class Form1 : Form
     2     {
     3         public Form1()
     4         {
     5             InitializeComponent();
     6         }
     7 
     8         private void button1_Click(object sender, EventArgs e)
     9         {
    10             TcpClient client = new TcpClient(ip地址, Int32.Parse(端口号));
    11             NetworkStream ns = client.GetStream();
    12             FileStream fs = File.Open("Form1.cs", FileMode.Open);
    13             int data = fs.ReadByte();
    14             while(data!=-1)
    15             {
    16                 ns.WriteByte((byte)data);
    17                 data = fs.ReadByte();
    18             }
    19             fs.Close();
    20             ns.Close();
    21             client.Close();
    22         }
    23     }

    Socket Client

     1 static void Main(string[] args)
     2         {
     3 
     4             IPHostEntry ipHsot = Dns.Resolve(ip地址);
     5             IPAddress ipAddress = ipHsot.AddressList[0];
     6             IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 13745);
     7             Console.WriteLine("Starting : Creating Socket object");
     8             Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     9             s.Connect(ipEndPoint);
    10             Console.WriteLine("Successfully Connected to {0}", s.RemoteEndPoint);
    11             while (true)
    12             {
    13                 byte[] receivedBytes = new byte[1024];
    14                 string sendMessage = Console.ReadLine();
    15                 if (sendMessage.Contains("exit"))
    16                     break;
    17                 Console.WriteLine("Creating message : {0}", sendMessage);
    18                 byte[] forwardMessage = new UTF8Encoding().GetBytes(sendMessage + "[FINAL]");
    19 
    20                 if (s.Connected)
    21                 {
    22                     try
    23                     {
    24                         s.Send(forwardMessage);
    25                         int totalBytesReceived = s.Receive(receivedBytes);
    26                         Console.WriteLine("Message provided from server :{0}", new UTF8Encoding().GetString(receivedBytes, 0, totalBytesReceived));
    27                     }
    28                     catch (Exception ex)
    29                     {
    30                         throw ex;
    31                     }
    32                 }
    33             }
    34             s.Shutdown(SocketShutdown.Both);
    35             s.Close();
    36 
    37         }

    Socket Server

     1  static void Main(string[] args)
     2         {
     3             Console.WriteLine("Starting : Createing Socket object");
     4             Socket lisner = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
     5             lisner.Bind(new IPEndPoint(IPAddress.Any, 13745));
     6             lisner.Listen(10);
     7             Console.WriteLine("Waiting for connection on port 13745");
     8             Socket socket = lisner.Accept();
     9             while (true)
    10             {  
    11                 string receivedValue = string.Empty;
    12                 while (true)
    13                 {
    14                     byte[] receivedBytes = new byte[1024];
    15                     int numBytes = socket.Receive(receivedBytes);
    16                     Console.WriteLine("Receiving / ");
    17                     receivedValue += new UTF8Encoding().GetString(receivedBytes, 0, numBytes);
    18                     if (receivedValue.IndexOf("[FINAL]") > -1)
    19                         break;
    20                 }
    21                 Console.WriteLine("Received value: {0}", receivedValue);
    22 
    23                 string replyValue = Console.ReadLine();
    24                 byte[] replyMessage = new UTF8Encoding().GetBytes(replyValue);
    25                 socket.Send(replyMessage);
    26                // socket.Shutdown(SocketShutdown.Both);
    27                 //socket.Close();
    28             }
    29            
    30         }
    31     }
  • 相关阅读:
    Windows 10安装DockerToolBox失败处理方法
    Docker未启动错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
    WordPress 后台上传自定义网站Logo
    WordPress 后台添加额外选项字段到常规设置页面
    WordPress后台的文章、分类,媒体,页面,评论,链接等所有信息中显示ID并将ID设置为第一列
    在Vs2012 中使用SQL Server 2012 Express LocalDB打开Sqlserver2012数据库
    Sqlserver中 登录用户只能看到自己拥有权限的库
    Asp.net 恢复页面内用户控件内的控件ClientID
    解决WordPress 页面无法评论的问题
    WordPress 如何搜索文章内容而不搜索页面
  • 原文地址:https://www.cnblogs.com/farmer-y/p/6118090.html
Copyright © 2011-2022 走看看