利用Java的Socket网络编程实现小型聊天室

前言

这个小型的聊天系统我没有用swt去做出界面出来,因为之前用的32位的,现在换了个环境导致之前的包不能用了,只能以控制台进行信息的交互。另外,这里介绍的是基于TCP的,UDP的简单一些就不介绍了。

基本代码

服务端

package thread.net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class Server {
	public static void main(String[] args) {
		// 指定服务器启动的时候占用的端口号,端口号取值是0~65535,1024一下预留给系统
		ServerSocket ssk = null;
		Socket sk = null;

		try {
			ssk = new ServerSocket(8888);
			System.out.println("服务器启动成功...");

			while (true) {
				sk = ssk.accept();
				new Thread(new MyServer(sk)).start();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

	}
}

class MyServer implements Runnable {
	private Socket sk = null;
	private BufferedReader read = null;
	private PrintWriter pw = null;

	public MyServer(Socket sk) {
		this.sk = sk;
	}

	@Override
	public void run() {
		Scanner sc = new Scanner(System.in);

		try {
			read = new BufferedReader(new InputStreamReader(sk.getInputStream()));
			pw = new PrintWriter(sk.getOutputStream());

			String line = read.readLine();
			System.out.println("客户端问:" + line);

			while (!"bye".equalsIgnoreCase(line)) {
				System.out.p
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您讲解基于Socket类的Java网络编程实现聊天小程序。 首先,我们需要了解Socket类是Java中用于实现网络通信的类,它提供了客户端和服务器端的通信功能。在聊天小程序中,我们需要使用Socket类来建立客户端与服务器端之间的连接。 在客户端中,我们需要创建一个Socket对象,并指定服务器端的IP地址和端口号,通过Socket对象的输入输出流进行数据的传输。具体代码如下: ```java Socket clientSocket = new Socket("服务器IP地址", 服务器端口号); OutputStream outToServer = clientSocket.getOutputStream(); DataOutputStream out = new DataOutputStream(outToServer); out.writeUTF("Hello from " + clientSocket.getLocalSocketAddress()); InputStream inFromServer = clientSocket.getInputStream(); DataInputStream in = new DataInputStream(inFromServer); System.out.println("服务器响应:" + in.readUTF()); clientSocket.close(); ``` 在服务器端中,我们需要创建一个ServerSocket对象,并指定监听的端口号,通过ServerSocket对象的accept()方法监听客户端的连接请求,并通过输入输出流进行数据的传输。具体代码如下: ```java ServerSocket serverSocket = new ServerSocket(服务器端口号); System.out.println("等待客户端连接..."); Socket server = serverSocket.accept(); System.out.println("客户端连接成功:" + server.getRemoteSocketAddress()); DataInputStream in = new DataInputStream(server.getInputStream()); System.out.println(in.readUTF()); DataOutputStream out = new DataOutputStream(server.getOutputStream()); out.writeUTF("谢谢连接:" + server.getLocalSocketAddress() + "\nGoodbye!"); server.close(); ``` 以上代码是一个简单的示例,实现了客户端与服务器端之间的数据传输。在实际的聊天小程序中,我们需要不断地接收客户端发送的消息,并广播给所有连接的客户端,同时也需要处理客户端的退出等情况。 希望以上内容能够对您有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值