import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
//服务端---接收信息
public class Server {
public static void main(String[] args) {
try {
//服务器需要使用ServerSocket来接收
//开始准备接收信息
ServerSocket server = new ServerSocket(9090);
System.out.println("服务器已经启动....");
while(true) {
//创建客户端的连接
//Socket里边封装了客户端的信息:发送的信息
//接收到后运用ServerSocket里边的.accept()方法将收到的信息封装到客户端里边以便于接收
Socket socket = server.accept();
//通过字节流获取发送的文本信息
//客户端发送的是字符但是传输依旧是字节,用getInputStream()方法得到字节,然后用字节来接收,
InputStream is = socket.getInputStream();
//把字节流转换成字符流
BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
//将得到的信息传到一个String类型得变量里
String newBr = br.readLine();
//通过字符流读取客户端的信息
//获得所有相关地址对象,再获得P地址字符串,进行读取
System.out.println("接收到" + socket.getInetAddress().getHostAddress()
+ "发送的消息:" + newBr);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
//客户端发送消息
public class QQ1 {
public static void main(String[] args) {
try {
while(true) {
//先与服务器建立连接
Socket socket = new Socket("192.168.60.201", 9090);
//准备发送的消息
//通过字节流进行发送
OutputStream os = null;
BufferedWriter bw = null;
//发送消息 将准备发送的消息通过socket里边的getOutputStream()方法转换成字节流
os = socket.getOutputStream();
//再将写的字节流通过"utf-8"转换成字符流
bw = new BufferedWriter(new OutputStreamWriter(os,"utf-8"));
Scanner input = new Scanner(System.in);
System.out.println("请输入发送的消息:");
bw.write(input.next());
bw.close();
os.close();
}
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}