在Java中实现TCP协议编程_冯东昆的博客-CSDN博客_java实现tcp协议
- package io;
-
- import java.io.BufferedReader;
- import java.io.BufferedWriter;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.net.ServerSocket;
- import java.net.Socket;
-
- public class TcpServer{
-
- public static void main(String[] args) {
- System.out.println("监听请求中...");
- BufferedWriter brout = null;
- BufferedReader brin = null;
- try (
- // 1.建立服务器socket
- ServerSocket ss = new ServerSocket(9009);
- // 2.调用accept()
- Socket s = ss.accept();){
- System.out.println(s.getInetAddress().getHostAddress()+ "...connection");
- // 读取客户的信息的输入流
- InputStream in = s.getInputStream();
- brin = new BufferedReader(new InputStreamReader(in));
- // 向客户端发送信息输出流,服务端向客户端返回信息OutputStreamWriter()
- brout = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
- String line = null;
- while ((line=brin.readLine()) != null) {
- System.out.println("client:" + line);
- brout.write(line.toUpperCase());//服务器端收到信息后,将信息转为大写返回给客户端toUpperCase()
- brout.newLine();
- brout.flush();
- }
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if(brout!=null) {
- try {
- brout.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if(brin!=null) {
- try {
- brin.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- package io;
-
- import java.net.Socket;
-
- import java.io.*;
-
- public class TcpClient{
-
- public static void main(String[] args) {
- try (
- // 1.建立tcp客户端socket,要确定要连接的服务器ip,port
- Socket s = new Socket("127.0.0.1", 9009);
- // 2.通过建立的socket,获取输出流对象
- // 数据输出给服务器端
- OutputStream out = s.getOutputStream();
- BufferedWriter bwout = new BufferedWriter(new OutputStreamWriter(out));
- // 获取服务器端返回的数据
- // 读取服务器端发过来的信息InputStreamReader()
- BufferedReader brin = new BufferedReader(new InputStreamReader(s.getInputStream()));
- // 获取键盘录入
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));){
- String line = null;
- while ((line = br.readLine()) != null) {
- if (line.equals("over")) {
- break;
- }
- bwout.write(line);
- bwout.newLine();
- bwout.flush();
- String str = brin.readLine();
- System.out.println("server:" + str);
- }
- } catch(IOException e) {
- e.printStackTrace();
- }
- }
-
- }