java也可以写基于tcp的客户端服务端,java在这方面专门提供了一套api,下面请看图看代码。
下面先看客户端代码
package TCP; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; public class Client { public static void main(String[]arge) throws UnknownHostException, IOException { TcpClient(); } public static void TcpClient() throws UnknownHostException, IOException { //创建套接流用于连接一个服务端 Socket s=new Socket("192.168.8.99", 100); //得到一个流对象并将其放在缓冲流中 BufferedOutputStream out=new BufferedOutputStream(s.getOutputStream()); //与服务端会话 发送你是小白兔吗 out.write("你是小白兔吗".getBytes()); //刷新缓冲区 out.flush(); //创建一个输入流 InputStream in=s.getInputStream(); //创建一个数组 byte[] bf=new byte[1024]; //读取流中的内容并将其存到byte数组中 int n=in.read(bf); //打印服务端给我们的会话 System.out.println(new String(bf, 0, n)); s.close(); } }
服务端代码
ckage socket; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /* * scoket tcp通信服务端 * * */ public class Socket_server { public static void main(String[]arge){ //System.out.println("Hello"); ServerTcpServer(); } public static void ServerTcpServer(){ ServerSocket ss; try { //创建一个套接字,并绑定一个端口 ss=new ServerSocket(100); //监听套接子并返回 Socket s=ss.accept(); //创建一个读取流 InputStream in=s.getInputStream(); //创建一个byte数组 byte[] bf=new byte[1024]; //读取流中的内容并存储到byte数组中 int len=in.read(bf); //输出客户端发来的数据 System.out.println(new String(bf,0,len)); //创建一个输出流 OutputStream out=s.getOutputStream(); String a="不,我是大灰狼"; //向客户端发送 我是灰狼 out.write(a.getBytes()); //关闭流资源 s.close(); ss.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }