以下做些java通信方面的总结,虽然有点零散,但是都是精华。
几个常用命令:
1.ping(发送回显消息):用于查看网络是否通畅 格式:ping 网络地址
2.telnet(远程登录):连接到指定IP地址的机器的指定端口 格式:telnet IP地址 端口
3.netstat:显示当前网路连接状况 格式:netstat -an
4.ipconfig:查看本机IP及其他信息
创建简单服务器步骤:
1.在指定端口上常见一个java.net.ServerSocket对象,代码如下:
ServerSocket server = new ServerSocket(端口名);
2.等待其他客户机来连接:
java.net.Socket client = server.accept();
3. 得到输入输出流对象
//从连接对象上得到输入输出流对象
OutputStream ous = client.getOutputStream();
InputStream ins = client.getInputStream();
4.使用输入输出流进行通信数据的读写
String s = "你好!";
//取得组成这个字符串的字节
byte[] data = s.getBytes();
//用输出对象发送
ous.write(data);
ous.flush();
//关闭与客户机的连接
client.close();
最后整合一下代码就完成了。
要实现一个强大的服务器,至少还需要实现以下几点:
1. 运用多线程,使服务器可以添加多个客户机
2. 循环读取数据(消息)
3. 界面优化
4. 设置消息发送与读取格式(如:XMPP风格)
几个要点:
1.阻塞:在accept()、read()、readLine()时线程阻塞
2.最好把readLine()方法和write()方法写在线程的run()方法内部,构成循环读取与输出
3.”\n\r“表示一行的结束时,如果用循环readLine()方法,则会看成两行来读取
4.做界面时,只需将readLine()方法得到的字符串append到JTextArea上即可
5.服务器和客户机的输入输出流是用同一个端口得到的,才能很好地交互,这边用这个端口的输出流输出数据,那边就可以用这个端口的输入流接受数据了
编写命令行客户端:
Socket client = new Socket("服务器IP",服务器端口);
就主要是这一行代码
通信项目的代码实现,主要抓住输入输出流的动向,灵活运用多线程来解决循环读取问题。当你希望某段代码能一直执行的话,考虑把它写到run()方法里。