一个客户端与服务器连接的JAVA程序 因为本人是菜鸟级别,所以请各位大师帮忙解释一下,越详细越好呀!
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、如果使用网卡,可以更换一下网卡。
0条评论