客户端
package com.sczy.entiy;
import java.io.*;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.util.Scanner;
/**
* 创建一个客户端套接字
*/
public class ClientScoket {
public static void main(String[] args) {
Scanner sacn = new Scanner(System.in);
Socket clinet = new Socket();
InetSocketAddress ints = new InetSocketAddress("localhost",6363);
//创建一个远程 服务器连接
InetSocketAddress removeInts = new InetSocketAddress("localhost",7666);
//创建相关的输入输出流
InputStream in = null;
OutputStream out = null;
DataInputStream din = null;
DataOutputStream dout = null;
try {
clinet.bind(ints);
boolean bound = clinet.isBound();//查看是否绑定了端口
boolean count = clinet.isConnected();//查看是否处于连接状态
clinet.connect(removeInts);//尝试连接远程服务器
//得到套接字的输入输出流
in = clinet.getInputStream();
out = clinet.getOutputStream();
din = new DataInputStream(in);
dout = new DataOutputStream(out);
while(true){
System.out.println("请输入你想发送的信息");
String mess = sacn.next();
dout.writeUTF(mess);//向服务器发送信息
String ress = din.readUTF();//接收服务器的回馈信息
System.out.println("服务器向您相应的消息是:");
System.out.println(ress);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
服务器端
package com.sczy.entity;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
public class severSockets {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
InputStream in = null;
OutputStream out = null;
DataInputStream din = null;
DataOutputStream dout = null;
try {
Socket client = null;
ServerSocket server = new ServerSocket(7666);
while(true) {
System.out.println("等待连接");
client = server.accept();;
System.out.println("连接成功");
//所有的输入输出流都要基于客服端套接字创建
in = client.getInputStream();
din = new DataInputStream(in);
out = client.getOutputStream();
dout = new DataOutputStream(out);
while(true) {
String mess = din.readUTF();//获得客服端的信息
System.out.println("客服端向你发送的信息是:");
System.out.println(mess);
System.out.println("请输入你的回馈给客服端信息");
String ress = scan.next();
dout.writeUTF(ress);//返回客服端信息
if(client.isClosed()) {
break;//如果客服端断开了连接,就不在等待他的消息
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}