一个客户端与服务器连接的JAVA程序 因为本人是菜鸟级别,所以请各位大师帮忙解释一下,越详细越好呀!

一个客户端与服务器连接的JAVA程序 因为本人是菜鸟级别,所以请各位大师帮忙解释一下,越详细越好呀!,第1张

import javaio;

import javanet;

import javautil;

public class ChatServer {

boolean started = false;

ServerSocket ss = null;

List<Client> clients = new ArrayList<Client>();//创建一个线程数组,这样每连接一个客户端就开启一个线程管理

public static void main(String[] args) {

new ChatServer()start();

}

public void start() {

try {

ss = new ServerSocket(8888);//服务器端监听8888号端口,如果有客户端向这个端口发起请求就可以被服务器端监听到

started = true;

} catch (BindException e) {

Systemoutprintln("端口使用中");

Systemoutprintln("请关掉相关程序并重新运行服务器!");

Systemexit(0);

} catch (IOException e) {

eprintStackTrace();

}

try {

while(started) {

Socket s = ssaccept();//服务器等待客户端的连接

Client c = new Client(s);//如果有客户端发出请求,把s传给Client

Systemoutprintln("a client connected!");

new Thread(c)start();//启动一个新进程,客户端与服务端建立通信

clientsadd(c);//

}

} catch (IOException e) {

eprintStackTrace();

} finally {

try {

ssclose();

} catch (IOException e) {

eprintStackTrace();

}

}

}

}

class Client implements Runnable {

private Socket s;

private DataInputStream dis = null;

private DataOutputStream dos = null;

private boolean bConnected = false;

public Client(Socket s) {

thiss = s;

try {

dis = new DataInputStream(sgetInputStream());//建立通信后,获得输入流

dos = new DataOutputStream(sgetOutputStream());//获得输出流

bConnected = true;

} catch (IOException e) {

eprintStackTrace();

}

}

public void send(String str) {

try {

doswriteUTF(str);//向流里面写入数据str

} catch (IOException e) {

eprintStackTrace();

}

}

public void run() {

try {

while(bConnected) {

String str = disreadUTF();//从流里面读取数据赋给str

Systemoutprintln(str);

for(int i=0; i<new ChatServer()clientssize(); i++) {

Client c = new ChatServer()clientsget(i);

csend(str);

}

}

} catch (EOFException e) {

Systemoutprintln("Client closed!");

} catch (IOException e) {

eprintStackTrace();

} finally {

try {

if(dis != null) disclose();

if(dos != null) dosclose();

if(s != null) {

sclose();

//s = null;

}

} catch (IOException e1) {

e1printStackTrace();

}

}

}

}

主要就是这些,客户端的程序不完整,而且跟服务端差不多,你对照着书看 应该能看懂

我之前一直在用宝塔,但是用了一段时间后觉得很卡,而且不支持系统检测和一键修复功能。所以,我后来选择了云帮手,云帮手是兼容windows和Linux服务器系统的,而且是可视化的,功能有几十种还是比较全面好用的,具体如下:

1批量管理多台云主机;

2兼容性强大,兼容市面基本所有的云商云主机,兼容操作系统;

3操作简单,可视化界面预览资源、一键修复、一键部署;

4可以远程登录云主机FTP桌面,处理云主机上的文件;

5监控和,资源还有告警功能,这个是挺好的,不用盯着看;

6系统修复功能,这个是挺实用也比较必须的;

7免费使用。总得来说功能还是挺全的,不存在需要又要另外找软件的尴尬,一个云帮手软件基本满足了所有需求。还是免费使用,上官网载册(点击进入)就可以用了。

网络问题。

网络连接超时,就是在程序默认的等待时间内没有得到服务器的响应。 网络连接超时可能的原因有:

1、网络断开,不过经常显示无法连接;

2、网络阻塞,导致不能在程序默认等待时间内得到回复数据包;

3、网络不稳zd定,网络无法完整传送服务器信息;

4、系统问题,系统资源过低,无法为程序提供足够的资源处理服务器信息;

5、设备不稳定,如网线松动、接口没插好等等;

6、网络注册时系统繁忙,无法回应。

解决办法

1、 检查网线,更换接口;

2、在早上上网人数少的时候注册;

3、使用加速软件,如果要下载东西尽量在没有网络使用需求情况下载;

4、 杀毒;

5、整理系统,减少运行的进程,释放内存、cpu,释放c盘空间;

6、如果使用网卡,可以更换一下网卡。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 一个客户端与服务器连接的JAVA程序 因为本人是菜鸟级别,所以请各位大师帮忙解释一下,越详细越好呀!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情