1.怎么定位计算机?
为网络上的计算机有唯一标识--IP地址 "ipconfig"查看
xxx.xxx.xxx.xxx < 255 ----> 映射成唯一的字符串---->域名
2.怎么定位应用程序?
使用一个整数来标记不同的应用程序----> 端口Port 0~65536 >1024
比如 迅雷 用整数80标记
3. 怎么表示本机?
3.1 真实IP
3.2 域名 locahost
3.3 IP 128.0.0.1
4.代码实现
4.1 分别定义两个.java文件,表示服务器端TestServer和客户端TestClient
4.2 先写服务端,交叉写 服务端和客户端
4.2.1 首先在服务端开启服务:服务端:创建ServerSocket(port){} ss对象
4.2.2 客户端向服务器发请求: 创建Socket(host,port){} s对象
4.2.3.服务器接受请求 Socket s = ss.accept();
import java.net.*;
public class TestServer {
public static void main(String[] args) throws Exception {
//1.在服务端创建ServerSocket对象,开放一个端口号,标记它
//1024以下的端口号尽量不用,可能已经被使用了
ServerSocket ss = new ServerSocket(8888);
//3.接受客户端请求
while (true) {
Socket s = ss.accept();
System.out.println("A Client is connected");
}
}
}
public class TestClient {
public static void main(String[] args) extends Exception {
//2. 在客户端创建Socket对象 public static Socket(String host,int port)
Socket s = new Socket("localhost",8888);
}
}
5. 客户端输出流和服务器端输入流对接
5.1 在客户端构建输出流
5.2 在服务器端构建输入流
import java.io.*;
import java.net.*;
public class TestServer {
public static void main(String[] args) throws Exception {
ServerSocket ss = new ServerSocket(8888);
while (true) {
Socket s = ss.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String str = br.readLine();
System.out.println(str);
}
}
}
import java.net.*;
public class TestClient {
public static void main(String[] args) throws Exception {
Socket s = new Socket("localhost",8888);
PrintWrite out = new PrintWriter(s.getOutputStream());
out.println("Hello Server");
out.close();
}
}