⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 server.java

📁 JAVA编写的聊天小程序!!程序默认需放到D:下
💻 JAVA
字号:
package group.server;

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;

/**
 <code>Server</code> 此类是服务器端的主类,主要用于和客户端的连接和产生线程
 @author wls
*/
public class Server
{
	private ServerSocket serSocket;				//服务器端Socket
	private Socket mainSocket;					//用于与客户端通信的Socket
	private static ServerFrame serFrame;			//服务器的主窗口框架
	private InetAddress address;					//用于服务器端的IP对象,主要是为了方便服务器端软件换计算机
	/**
	 "PORT" 此int常量用于设定与客户端连的端口
	*/
	public static final int PORT = 3129;			//用于通信的端口常量

	/**
	 Server类的唯一构造函数,主要用于一些成员的初始化
	*/
	public Server()
	{
		serFrame = new ServerFrame();
		serFrame.addWindowListener(new WindowAdapter()
			{
				public void windowClosing(WindowEvent e)
				{
					serFrame.IOFlush();
					System.exit(0);
				}
			});

		try
		{
			serSocket = new ServerSocket(PORT);
		}catch(IOException IO_e)
		{
			serFrame.updateMes("ServerSocket 初使化时发生IO错误:\n" +
				IO_e.toString());
			return;
		}

		try
		{
			address = InetAddress.getLocalHost();
		}catch(UnknownHostException net_e)
		{
			serFrame.updateMes("未知的主机名错误,错误发生在Server类的构造函数:\n" +
				net_e.toString());
			try
			{
				serSocket.close();
			}catch(IOException IO_e2)
			{
				serFrame.updateMes("serSocket.close()时出错:\n" +
					IO_e2.toString());
			}
		}

		if(address != null)
		{
			serFrame.updateMes("服务器启动完毕!");
			serFrame.updateMes("本机的IP地址为:  " + address.toString().substring(
				address.toString().lastIndexOf("/") + 1));
		}
	}

	/**
	 此方法用于创建与每个客户端连接的线程
	*/
	public void createThread()
	{
		if(serSocket == null)
		{
			return;
		}
		while(true)
		{
			try
			{
				Socket soc = serSocket.accept();
				new ControlService(soc, serFrame);
			}catch(IOException IO_e)
			{
				serFrame.updateMes("  Server类中createThread方法发生IO错误:\n" +
					IO_e.toString());

				try
				{
					serSocket.close();
				}catch(IOException IO_e2)
				{
					serFrame.updateMes("Server类中调用serSocket.close()发生IO错误:\n" +
						IO_e2.toString());
				}
				return;
			}
		}

	}

	/**
	 main()方法,服务器端执行入口
	*/
	public static void main(String[] args)
	{
		Server ser = new Server();
		ser.serFrame.show();
		ser.createThread();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -