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();
}
}
}
![](https://i-blog.csdnimg.cn/blog_migrate/bacdbb47ac1cd439830707057d9e02fc.png)
![](https://i-blog.csdnimg.cn/blog_migrate/dcc79bef14491897639bb55055a91692.png)