今天下午上了线程的第一节之后,晚上强哥跟另外一个组上起了网络通信,因为都在咖啡厅,所以我们小组就蹭着一起听了听,学会了用命令指示符做了些简单的操作。
比如,输入ipconfig,就可以获得本机上关于IP方面的相关信息
因为我们用的是蓝杰的wifi,所以IPv4的地址是路由器那边随机分配给我的,因为我没有主动的设置固定的IP地址,当然获取这个信息之后,可以和小伙伴建立联系,进行些单向信息交流(今天是第一堂课,老师没有多讲,相信之后会实现双向的交流滴……)
接下来,如果想要获得某某网站的IP地址,可以直接通过输入ping 网址的域名,比如说我想查看百度的IP地址,我就在cmd上输入:ping www.baidu.com 按下回车键,就可以获得如下信息:
从第二行我们可以看到180.97.33.108就是百度服务器的IP地址,当然,百度不可能只有一台服务器,事实上180.97.33.107也是百度服务器的IP地址,而TTL=54,意思是从我这台电脑到达百度那端经过了10次“转车”,因为我们发现内部网的电脑之间TTL的值是64,所以,可以得出这样的结论。不过,通过一个域名查询其IP地址的方法有很多种,比如可以点开www.ip138.com,这里一打开就会显示路由器的IP地址,下方有个查询功能哟,输入那个域名就可以查到其IP地址啦……
若是我们输入 tracert 180.97.33.108的话,就会知道这中间到底是怎么“转的车”:
中间貌似有跟踪失败的“中转站”,目前我还不太清楚原因,如果有大神愿意答疑解惑下,那真真是极好的……将这些IP地址输入到www.ip138.com网站上去查询,发现前三个都是长沙的电信,第四个就到了黑龙江省的一个骨干网上,第五个貌似是江苏省某某市,忘记掉了……总之可以一系列的追踪从我这台机子是如何转车到达百度的IP地址的……
接下来就尝试将两台电脑进行单向信息交流,代码如下:
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public void setupServer(int port){
//创建服务器套接字
try{
//本机IP:127.0.0.1, localhost
//port:0-65535,0-1024提供给系统服务
//telnet+ip地址 +端口名
ServerSocket ss=new ServerSocket(port);
System.out.println("等待客户端的访问");
//等待客户端的访问
Socket socket=ss.accept();//这个类是实现客户端套接字(也可以就叫“套接字”)。而套接字是两台机器间通信的端点
//得到与客户端通信的输入输出流
InputStream input =socket.getInputStream();
OutputStream output =socket.getOutputStream();
String str="Hello,你好";
//将字符串转化为byte数组
byte[] bytes=str.getBytes("GB2312");
output.write(bytes);
//接受客户端的信息
while(true){
//从客户端读取一个字节
int n=input.read();
System.out.print((char)n);
}
// System.out.println("有人访问了……");
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
new Server().setupServer(8888);
}
}
如代码所示,我设置了端口名为8888,因此另外一台电脑只须在cmd命令中输入:telnet 我的IP地址名 端口名,之后他输入的内容,我就可以看得到……
但是这个的实现必须先通过控制面板的程序那里貌似有个打开或启动windows功能,点开Telnet的客户端,切记不能点开服务器,因为那样自己的电脑会处于不安全的状态,容易被他人操纵,切记别点错了……
总之这些就是今晚的收获,虽然有些地方还是木有太懂,但是相信通过今后的课程会更加清晰明白滴……