客户端:
import java.io.*;
import java.net.Inet4Address;
import java.net.InetSocketAddress;
import java.net.Socket;
public class Client {
public static void main(String[] args) throws IOException {
try{
//创建socket
Socket socket = new Socket("所连接服务端ip地址",端口号);
//得到Socket输出流
BufferedWriter write = new BufferedWriter(new OutPutStreamWriter(socket.getOutPutStream()))
//发送方法 1.
//固定发送内容
writer.write("hello");
//刷新write
writer.flush();
//发送方法 2.
//获取键盘输入数据
// InputStream in = System.in;
// BufferedReader input = new BufferedReader(new InputStreamReader(in));
// String s = input.readLine();
//发送键盘输入
//writer.write(s);
//刷新write
//writer.flush();
//接收服务端回复:
//得到socket输入流
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获取服务端返回数据
String back = reader .readLine();
System.out.println(back);
//重复使用可以加入循环控制 获取键盘输入以及服务端返回数据
// do {
// String s = input.readLine();
// writer.write(s);
// writer.flush();
// String back = bufferedReader.readLine();
// System.out.println(back);
// } while (true);
//
//退出的话可定义标志位代替true。
} catch (){
} finally{
//关闭资源
writer.close();
socket.close();
}
}
服务端:
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args){
try {
//创建服务端
ServerSocket serverSocket = new ServerSocket(端口);
//监听,等待客户端连接
Socket client = serverSocket.accept();
//得到socket输出流,返回客户端数据使用
BufferedWriter writer = new BufferedWriter(new OutPutStreamWriter(socket.getOutPutStream()))
//得到socket输入流,读取客户端写入数据使用
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
//获取客户端发送给服务端的消息
String input = socketInput.readLine();
System.out.println(input);
//回复客户端
writer.write("你好");
//不需要回复客户端,不用writer。可以在读取到数据进行一些处理,循环也可用dowhile
} catch (IOException e) {
e.printStackTrace();
}finally {
//关闭资源
reader.close();
writer.close();
socket.close();
serverSocket.close();
}
}
}
}
先运行服务端,再运行客户端,然后在客户端发送消息给服务端