8年前,令我窒息的Java socket体验学习

本来已经放弃编程了,那时我发誓再也不去IT培训班了,如果找不到工作,我就去工地上打工。可心有不甘,老是惦记着,我不想天天面对生产线,做一个丧失思考能力的操作工,可后来呀,还是走上了程序员之路。。。这么多年了,接触到C#的socket编程,可我还能感受到当时想去洋谷科技而又不能的那种无奈,迷茫。

 

我不会Java,仅用C#来说明,用socket实现聊天功能,代码是网上抄的,但可以说明当年我感觉高深的socket编程

Server:

 1 using System;
 2 using System.Net;
 3 using System.Net.Sockets;
 4 using System.IO;
 5 
 6 namespace TCPServer
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             TcpClient client=null;
13             try
14             {
15                 IPAddress myIp=IPAddress.Parse("127.0.0.1");
16                 TcpListener myServer = new TcpListener(myIp, 6688);
17 
18                 myServer.Start();
19                 Console.WriteLine("Wait for client's connection....");
20 
21                 client = myServer.AcceptTcpClient();
22                 Console.WriteLine("Client is already connected...");
23 
24                 NetworkStream stream = client.GetStream();  
25                 StreamReader sr = new StreamReader(stream);
26                 StreamWriter sw = new StreamWriter(stream);
27 
28                 while(true)
29                 {
30                     Console.WriteLine("\nClient:\n" + sr.ReadLine()+"\n");
31                     Console.WriteLine("Server:");
32                     string msg= Console.ReadLine();
33                     sw.WriteLine(msg);
34                     sw.Flush();
35                 }
36             }
37             catch
38             {
39                 if(client!=null)
40                 {
41                     client.Dispose();
42                 }
43             }
44         }
45     }
46 }

 

Client:

 1 using System;
 2 using System.IO;
 3 using System.Net;
 4 using System.Net.Sockets;
 5 
 6 namespace TCPClient
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             TcpClient client=null;
13             try
14             {
15                 IPAddress myIp = IPAddress.Parse("127.0.0.1");  
16                 client = new TcpClient();  
17                 client.Connect(myIp, 6688);  
18                 Console.WriteLine("server connected...please enter contact content...");  
19     
20                 NetworkStream stream = client.GetStream();  
21                 StreamReader sr = new StreamReader(stream);  
22                 StreamWriter sw = new StreamWriter(stream);  
23     
24                 while (true)  
25                 {
26                     Console.WriteLine("Client:");
27                     string msg = Console.ReadLine();  
28                     sw.WriteLine(msg);  
29                     sw.Flush();
30                     Console.WriteLine("\nServer:\n" + sr.ReadLine()+"\n");  
31                 }
32             }
33             catch
34             {
35                 if(client!=null)
36                 {
37                     client.Dispose();
38                 }
39             }
40         }
41     }
42 }

 

先运行Server端

看到Wait for client's connection... 后,运行client端

 

 然后,client端发送信息"Hi Server, I am from client."到server端,server端收到client发来的消息

 

然后,server端发送信息"Hi Client, I am from Server."到client端,client端收到server发来的消息

 

按Ctrl+c先后中断客户端和服务端。

posted @ 2017-12-03 23:18  双健  阅读(255)  评论(0编辑  收藏  举报