JavaSocket聊天器<一>实现客户端与服务端连接

本文介绍了如何使用Java的Socket实现客户端与服务端的连接。服务端通过ServerSocket创建并监听客户端连接,accept方法等待客户端请求。客户端则通过Socket指定服务端地址和端口建立连接。一旦连接建立,双方利用Socket的输入输出流进行数据通信。通讯完毕后,关闭连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自己动手实践Socket编程<一>
实践目标:编写一款非界面,基于Socket的聊天器,当然是一步步由简单至复杂的过程,最终具有的功能,多用户相互发送信息,可以广播给所有用户,以后,看看能否加上文件的传输。

服务端

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
 * 服务端程序:主要任务:接收来自客户端的连接信号
 * @author Character_Painter
 *
 */
public class Server {
	private ServerSocket server=null;
	
	public Server(){
		try {
			System.out.println("服务器等待客户端连接......");
			//创建ServerSocket,并申请计算机的8088服务端口
			server = new ServerSocket(8088);
			Socket socket = server.accept();
			/*
			 * 监
JavaSocket编程实现白板程序实践的内容或要求: 1. 编写图形用户界面,教师为服务端,学生为客户端服务端可以接受多个客户端连接。 2. 要求完成教师白板的建立,实现教师在白板上画图,学生端能够实时刷新。 3. 教师可以传输文件给学生。 4. 学生可以向教师提问,问答内容所有学生都能看到。 我的代码已经实现了上述功能 代码如下:server端:import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.*; import java.util.*; public class TeacherServer extends JFrame { private JPanel drawingPanel; private JTextArea chatArea; private JTextField chatField; private JButton saveButton, loadButton, sendFileButton; private JFileChooser fileChooser; private ServerSocket serverSocket; private Set<ClientHandler> clients = Collections.synchronizedSet(new HashSet<>()); private Point lastPoint; private Color currentColor = Color.BLACK; private int strokeSize = 3; public TeacherServer() { super("教师白板 - 服务"); setSize(1000, 700); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new BorderLayout()); // 创建绘图面板 drawingPanel = new JPanel() { @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.setColor(Color.WHITE); g.fillRect(0, 0, getWidth(), getHeight()); } }; drawingPanel.setBackground(Color.WHITE); drawingPanel.setPreferredSize(new Dimension(700, 500)); // 添加鼠标监听 drawingPanel.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { lastPoint = e.getPoint(); } }); drawingPanel.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { Point newPoint = e.getPoint(); Graphics g = drawingPanel.getGraphics(); g.setColor(currentColor); ((Graphics2D)g).setStroke(new BasicStroke(strokeSize)); g.drawLine(lastPoint.x, last
最新发布
07-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值