자바 구현 소켓 통신 - 클라이언트와 서버 간의 통신을 가능하게

지식은 사용 :
IO 스트림
소켓
좋은 클라이언트를 구축, 데이터가 버퍼에로드 문자 스트림으로 전송되는
Client.java

package com.ifueen.classtest.socket;

import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;

public class Client {
	private Socket sk;
	public static void main(String[] args) {
		Client client = new Client();
		client.connect();
	}
	
	/**
	 * 创建客户端并连接到服务器
	 */
	public void connect() {
		
		try {
			sk = new Socket("localhost",8088);
			System.out.println("创建客户端成功");
			//拿到自身的输出流
			OutputStream outputStream = sk.getOutputStream();
			//将字节流转换为字符流
			OutputStreamWriter writer = new OutputStreamWriter(outputStream, "utf-8");
			//创建缓冲区
			PrintWriter pw = new PrintWriter(writer,true);
			pw.println("会沉寂吗");
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
}

그런 다음 서버를 설정 : Server.java를

package com.ifueen.classtest.socket;

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 {
	
	private ServerSocket ss;
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Server server = new Server();
		server.connect();
		server.strat();
	}
	
	/**
	 * 服务端开启
	 */
	public void connect(){
		try {
			//创建服务端的端口
			ss = new ServerSocket(8088);
			System.out.println("服务端初始化成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	/**
	 * 启动监听
	 */
	public void strat() {
		
		try {
			//拿到客户端
			Socket accept = ss.accept();
			//获取客户端的ip地址
			String address = accept.getInetAddress().getHostAddress();
			System.out.println("客户端ip为:"+address);
			
			//拿到客户端传递的字节流
			InputStream is = accept.getInputStream();
			//将字节流转换为字符流
			InputStreamReader ins = new InputStreamReader(is,"utf-8");
			//创建输入的缓冲区
			BufferedReader rd = new BufferedReader(ins);
			//读取一行
			String message = rd.readLine();
			System.out.println(address+":"+message);
			
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	
	

}

먼저 서버를 시작하고 서버에 데이터를 보낼 수있는 클라이언트 후 연결 클라이언트를 시작

게시 87 개 원래 기사 · 원 찬양 7 ·은 20000 +를 볼

추천

출처blog.csdn.net/f2315895270/article/details/99696914