Java Socket编程

基于Tcp连接

Server端

 1 /*
 2 需求:定义端点接收数据并打印在控制台上。
 3 
 4 服务端:
 5 1,建立服务端的socket服务。ServerSocket();并监听一个端口
 6 
 7 2,获取连接过类的客户端对象。
 8     通过ServerSocket的accept方法。没有连接就会等,所以这个方法是阻塞式的
 9 3,客户端如果发送过来数据,那么服务端要使用对应的客户端对象,并获取到该客户端对象的读取流
10     来读取发过来的数据。并打印在控制台上
11 4, 关闭服务端(可选操作)
12 */
13 
14 import java.io.*;
15 import java.net.*;
16 
17 
18 class Server{
19     public static void main(String []  args) throws IOException{
20         //建立服务端的Socket服务,并监听一个端口。
21         ServerSocket ss = new  ServerSocket(10009);
22 
23         //通过ServerSocket的accept方法,获取客户端连接过来的对象。
24 
25         Socket s = ss.accept();
26 
27         //获取发送数据的客户端主机ip地址
28         String ip = s.getInetAddress().getHostAddress();
29 
30         //获取客户端发过来的数据,要使用客户端的对象的读取流方法来读取数据
31 
32         InputStream in = s.getInputStream();
33 
34         //字节流转换为字符流
35         InputStreamReader ir = new InputStreamReader(in);
36 
37         //添加缓冲区
38         BufferedReader bf = new BufferedReader(ir);
39 
40         String a = bf.readLine();
41         //byte[] buf=new byte[1024];
42         //int a = in.read(buf);
43 
44 
45         System.out.print(a+"\n "+ip);
46 
47         //System.out.println(new String(buf,0,a)+" "+ip);
48     }
49 }

 

Client

 1 import java.io.*;
 2 import java.net.*;
 3 
 4 class Client{
 5     public static void main(String [] args) throws IOException{
 6         //创建客户端的socket服务。指定目的主机和端口
 7         Socket s = new Socket("127.0.0.1",10009);
 8 
 9         //为了发送数据,应该获取socket流中的输出流
10         OutputStream out = s.getOutputStream();
11 
12         //将信息转换成字节形式虽网络流发送出去
13         out.write("tcp ge men lai le".getBytes());
14         //关闭网络流socket
15         s.close();
16 
17     }
18 }

 

运行结果

 

 

posted @ 2018-11-14 17:43  大彪哥55  阅读(139)  评论(0编辑  收藏  举报