TCP客户端和服务端的互通信息

/*
学习笔记
TCP客户端和服务端的互通信息
客户端步骤:
需求:客户端给服务端发送数据,服务端收到后给客户端反馈信息
步骤:
1.导入包 java.IO java.net 包
2.创建Socket 服务。指定要连接主机和端口
3.获取socket流中的输出流。将数据写到该流中,通过网络发送给服务端。
4.获取socket流中的输入流,将服务端反馈的数据获取到并打印。
5.获取ServerSocket服务端发过来的数据。
6.创建一个缓冲区来存储数据。
7.定义一个整型 来接收缓冲区
8.将数据打印出去。
服务端步骤:
1.导入包 java.IO java.net 包
2.创建ServerSocket服务端对象来监听一个端口。
3.创建 socket的然后通过accept方法获取连接过来的客户端对象 。
4.通过这两个方法getInetAddress().getHostAddress() 来获取IP地址 定义字符串类型来接收IP地址。
5.将获取到的IP地址打印出去。
6.获取客户端发送过来的数据 那么使用客户端对象的读取流来读取数据。
7.创建一个字节数组作为缓冲区来存储数据 因为知道数据不是很大所以定义[1024]就可以用了。
8.获取客户端发送过来的数据 那么使用客户端对象的读取流的方法:getInputStream()来读取数据。
9.将数据写入出去,定义一个整类类型来接收。
10.然后将数据打印出去。
11.负责给客户端反馈信息的,所以必须用的客户端的输出流,通过这个方法来获取getOutputStream();
12.然后给客户端回馈信息,通过这个write(); 的这个方法将数据发送出去,将数据信息变成字符串形式发出去!
13.关闭资源(可选择操作)
时间:2018-8-17
作者:无痕公子
*/
package tCP;
import java.io.*;
import java.net.*;
//客户端
public class Client
{

public static void main(String[] args) throws Exception { Socket s = new Socket("IP地址",10012); OutputStream out =s.getOutputStream(); out.write("给服务端 发送的信息=您好!".getBytes()); InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int len =in.read(buf); System.out.println(new String(buf,0,len)); s.close(); }

【TCP客户端和服务端的互通信息】}
class Serverside
{
public static void main(String[] args) throws Exception {ServerSocket ss = new ServerSocket(10012); Socket s = ss.accept(); String iP =s.getInetAddress().getHostAddress(); System.out.println("IP="+iP); InputStream in = s.getInputStream(); byte[] buf = new byte[1024]; int len =in.read(buf); System.out.println(new String(buf,0,len)); OutputStream out = s.getOutputStream(); //用的客户端的输出流Thread.sleep(10000); //10秒中后在发送out.write("给客户端回馈的信息=收到!您好".getBytes()); ss.close(); }

}
结果图:
TCP客户端和服务端的互通信息
文章图片

TCP客户端和服务端的互通信息
文章图片

/*
总结:
通过以上的小例子给服务端 和客户端 建立网络通信.客户端给服务端发送信息。服务端给客户端回馈信息
发现了客户端和服务端的输入流和输出流都是反着来的!
*/

    推荐阅读