TCP学习三

 1 /*

 2 客户端流程:

 3 1.创建客户端socket服务对象,明确连接到哪个主机;

 4 2.将数据写到socket对象的输出流中;

 5 3.获取服务端发送回来的socket对象输入流;

 6 4.关闭服务

 7 */

 8 import java.net.*;

 9 import java.io.*;

10 class TCPSend3

11 {

12     public static void main(String[]args) throws Exception

13     {

14         //创建客户端socket服务对象,与此同时需要明确连接到哪个主机服务端

15         Socket socketSend=new Socket(InetAddress.getByName("127.0.0.1"),10003);

16         //将数据写到socket对象的输出流中

17         BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(socketSend.getOutputStream()));

18         //String data="服务端你好,俺是客户端";

19         //bw.write(data,0,data.length());

20         BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

21         String data;

22         while((data=br.readLine())!=null)

23         {

24             bw.write(data);

25             bw.newLine();//服务端要读到换行符才能打印,因为readLine方法读到换行符才停止一行数据的读取

26             bw.flush();//别忘了这一步,否则服务端收不到数据,为NULL

27         }        

28         //关闭服务

29         socketSend.close();

30     }

31 }

32 

33 /* 

34     1.创建服务端socket服务对象,明确监听的端口号

35     2.获取服务端连接过来的socket对象

36     3.获取客户端发过来的数据(存放在输入流中)

37     4.关闭服务

38 */

39 class TCPReceive3

40 {

41     public static void main(String[]args) throws Exception

42     {

43         //1.创建服务端socket服务对象,明确监听的端口号

44         ServerSocket socketReceive=new ServerSocket(10003);

45         //2.获取服务端连接过来的socket对象

46         Socket socketSend=socketReceive.accept();

47         //3.获取客户端发过来的数据,就是获取客户端socket对象的输入流

48         BufferedReader br = new BufferedReader(new InputStreamReader(socketSend.getInputStream()));

49         String data;

50         while((data=br.readLine())!=null)

51         {

52             System.out.println(data);

53         }

54         //4.关闭服务

55         socketSend.close();//同时关闭连接过来的客户端socket

56         socketReceive.close();

57     }

58 }
View Code

 

你可能感兴趣的:(tcp)