第一次接触通信,一开始感觉是个很高大上的东西。好吧,未知的神秘总是比较让人敬畏。
在这里写一下这些天的总结,回首一顾,似乎还是蛮简单的。
首先,每一台电脑在互联网上都有一个IP地址,通过ip地址我们可以找到这台电脑。但是要实行通信还需要知道该电脑进行通信的程序。通过端口你可以确保你发送的信息是发给QQ或者飞信的,而不是WPS或者其他什么程序。
在没有界面的时候,我们可以用Telnet来进行通信。
Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
在命令行输入:Telnet IP 端口
就可以访问对应Ip的相应程序进行通信。
回到java,这里做一个最简单的聊天程序。这是当初的第一个成品;
import java.io.IOException;
//因为字节是基础,所以在这里保存这个第一次的成品吧
//*****************************************************************************************************8
//实现一个服务器接收客户机的连接
public class Test {
//在制定的端口上启动服务器
public void setupServer(int port){
try {
java.net.ServerSocket ss=new java.net.ServerSocket(port); //创建服务器对象
System.out.println("1、服务器启动成功,所在端口;"+port);
java.net.Socket s= ss.accept();//接收客户端,让服务器等待 可能会阻塞
String rs=s.getRemoteSocketAddress().toString();
System.out.println("2、有客户机进入"+rs);
//取得输入输出流,读写数据
java.io.InputStream ins = s.getInputStream();
java.io.OutputStream ous = s.getOutputStream();
String mine="你好,欢迎来到www.inoutip.com";
byte[] bs=mine.getBytes();
ous.write(bs);
//读写数据
int d=ins.read();//阻塞,要等对方发生时送数据才能收到
while(d!=13){//这样只能读取一行,所以可以改成#
System.out.println("读取一个新的字节:"+(char)d);
d=ins.read();
// String inputS=readString(ins);
}
System.out.println("对方发来了结束指令:"+d);
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//主函数
public static void main(String Args[]){
Test cs=new Test();
cs.setupServer(9090);
}
}
人懒,很多总结都没写,以至于有时想动笔也不知从何而起,总算是开始动笔了,让我慢慢写完。<!--EndFragment--><!--EndFragment-->