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     }
  • 相关阅读:
    1093 Count PAT's(25 分)
    1089 Insert or Merge(25 分)
    1088 Rational Arithmetic(20 分)
    1081 Rational Sum(20 分)
    1069 The Black Hole of Numbers(20 分)
    1059 Prime Factors(25 分)
    1050 String Subtraction (20)
    根据生日计算员工年龄
    动态获取当前日期和时间
    对计数结果进行4舍5入
  • 原文地址:https://www.cnblogs.com/farmer-y/p/6118090.html
Copyright © 2011-2022 走看看