Java Client -- Server (服务器端和客户端) 通讯

使用 Java 实现一个简单的聊天程序, 实现服务器端接收到客户端发来的消息, 使用了java.net.socket包. 通过socket 实现 client — server 之间的通讯.

socket详解

环境要求:

  1. windows启用telnet功能.
  2. Eclipse安装必要组件
    这里写图片描述

代码如下:


import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
/*
 * @author yancykahn
 * @vision 2.0
 */
public class Server {
	private ServerSocket serverSocket;
	// 端口号为port 的构造函数
	public Server(int port) {
		try {
			serverSocket = new ServerSocket(port);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	public void start() {
		try {
			System.out.println("wait server connect ...");
			//让服务器进入等待状态, 阻塞.
			Socket socket = serverSocket.accept();
			System.out.println("server connected.");
			InputStream is = socket.getInputStream();
			OutputStream os = socket.getOutputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is, "UTF-8"));
			String data = br.readLine().toString();
			String name = socket.getInetAddress().getCanonicalHostName();
			while(!data.equals("exit")) {
				String temp = name + " : " + data + "\r\n";
				System.out.println(temp);
				os.write(temp.getBytes());
				os.flush();
				data = br.readLine().toString();
			}
			os.write("bye!\n".getBytes());
			os.flush();
			socket.close();
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
public static void main(String[] args) {
		// TODO Auto-generated method stub
		Server server = new Server(8888);
		server.start();
	}
  • telnet远程连接
    telnet远程连接
    2.连接成功
    客户端
    服务器端
    3.退出
    exit
  • 最后,我自己的感受,按照这个步骤操作,在安装必要组件的时候就不行了,可能是因为我电脑上的Eclipse是汉化版,自己有一定的错误吧,此外,环境等都没有经过更新。各位,如果有兴趣,可以自己试试。

    发布了43 篇原创文章 · 获赞 61 · 访问量 5114

    猜你喜欢

    转载自blog.csdn.net/qq_44735533/article/details/103638407