2016.10.13
乐逗的校园大使的任务差不多都结束了,终于可以全身心的投入找工作了,向胡哥说的那样,每天面一场,然后总结,一定要争取机会去复试。加油!
现在继续在这边上课了。现在总结一下今天的上课内容,以后也尽量像这样及时的写技术博客。
什么叫服务端和客户端?
假如打开一个网页,你要查询资料。你是客户,因为你在访问,你访问的是客服端。去吃饭,你到饭店,你点餐你是顾客(客户端)Client,服务员也就是(服务端)Server。
以一段代码为例:
public class TestServer {
public void startStar(int port){
try{
//1.创建一个服务器对象
System.out.println("1,开始创建服务器");
java.net.ServerSocket ss = new java.net.ServerSocket(port);
//2.等待连接进入
System.out.println("2,服务器创建成功在"+port);
while(true){
java.net.Socket client = ss.accept();//阻塞住,待机状态
System.out.println("3,在客服机进入..."+port);
//取得输入输出对象
java.io.InputStream ins = client.getInputStream();
java.io.OutputStream ous = client.getOutputStream();
//4.读写错了...
String msg ="hello";
byte[] data =msg.getBytes();
ous.write(data);
int t = ins.read();//阻塞
System.out.println("读到发来的一个字节: "+t);
}
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) {
TestServer ss = new TestServer();
ss.startStar(7676);
}
}
运行结果如下:
1,开始创建服务器
2,服务器创建成功在7676
在windows环境下,命令行程序为cmd,然后输入ipconfig,出现如下IPV4就是本机的服务器地址,好像每次运行的都不一样。
由于开始时电脑的Telnet客户端默认是关闭的,所以要自己打开。还有就是我这个自己添加了ipconfig的环境变量。
大概持续了好几分钟。
命令行模式 输入 telnet localhost 端口号
如果就是本地传输,则只要输入:
telnet localhost port(本次是7676)
结果如下:
如果是与别人的电脑进行通信,则需输入:telnet xxx.xxx.x(对方的ip地址) 端口号
回去可以查看寝室的路由器,进行通信哦。
over,洗澡睡觉。。
这个是PDF上的,和上面的代码基本上一样。
public class TestServer {
public void setUpServer(int port){
//建立绑定在指定窗口上的服务器对象
try {
ServerSocket server = new ServerSocket(port);
System.out.println("服务器创建成功! "+port);
//让服务器进入等待状态:阻塞状态
Socket client = server.accept();
//从连接对象上得到输入输出流对象
OutputStream out = client.getOutputStream();
InputStream ins = client.getInputStream();
String s = "你好,欢迎来javaKe.com\r\n";
byte [] data = s.getBytes();//取得组成这个字符串的字节
out.write(data);//用输出对象发送数据
out.flush();//强制输出
client.close();//关闭与客户机的连接
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
TestServer ts = new TestServer();
ts.setUpServer(8887);
}
}