客户端代码:
public class TcpClient {
public static void main(String[] args) throws IOException {
Socket socket= new Socket(服务端ip地址,端口号);
OutputStream os= socket.getOutputStream();//获取输出流
System.out.println("建立连接");
os.write("你好服务器".getBytes());
InputStream is = socket.getInputStream();//获取输入流读取服务端的返回信息
byte[] bytes = new byte[1024];
int len = is.read(bytes);
String read=new String(bytes,0,len);
System.out.println(read);
clientTcp(socket,os,is,read);
}
private static void clientTcp(Socket socket, OutputStream os, InputStream is, String read) throws IOException {
Scanner scanner =null;
if (read!=null && read.equals("end")){
scanner.close();
socket.close();
}else{
System.out.println("aa: ");
scanner = new Scanner(System.in);
String next=null;
if (scanner.hasNext() ){
next = scanner.next();
}
os.write(("aa: "+next).getBytes());
byte[] bytes1 = new byte[1024];
int leng = is.read(bytes1);
read = new String(bytes1, 0, leng);
System.out.println(read);
clientTcp(socket,os,is,read);
}
}
}
服务端代码:
public class TcpServer {
public static void main(String[] args) throws IOException {
ServerSocket serevr = new ServerSocket(8081);
Socket socket = serevr.accept();//监听8081端口
//服务端本身并没有io流,只能使用客户端的流读取和回复
InputStream is = socket.getInputStream();//读取客户端信息
byte[] bytes = new byte[1024];
int len = is.read(bytes);
String read = new String(bytes, 0, len);
System.out.println(read);
OutputStream os = socket.getOutputStream();//获取输出流
os.write("连接成功".getBytes());
ServerTcp(read, serevr, socket, is, os);
}
private static void ServerTcp(String read, ServerSocket serevr, Socket socket,InputStream is,OutputStream os) throws IOException {
Scanner scanner =null;
if (read!=null && read.equals("end")){
scanner.close();
socket.close();
serevr.close();
}else{
byte[] bytes1 = new byte[1024];
int read1 = is.read(bytes1);
read=new String(bytes1,0,read1);
System.out.println(read);
System.out.println("bb: ");
scanner = new Scanner(System.in);
String next=null;
if (scanner.hasNext() ) {
next = scanner.next();
}
os.write(("bb: "+next).getBytes());
ServerTcp(read,serevr,socket,is,os);
}
}
}
功能不是很完善只能实现a方与b方交替发送消息。代码亲测有效