* 网络编程:两台或两台以上的主机构成一个网络 * IP地址:标志网络中的一个通信实体的地址 * 端口号:区分不同应用程序 * 网络通信协议:ISO参考模型(7层),TCP/IP协议(4层) * * Socket 套接字 * Socket是传输层供给应用层的编程接口 * * 先开服务器端
服务端
package msb_7天学完java.网络编程;import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;public class Server {//服务器public static void main(String[] args) throws IOException {System.out.println("服务器端启动");//套接字:指定端口号ServerSocket ss = new ServerSocket(8888);//等待客户端发送数据Socket s = ss.accept();//服务端感受到的输入流InputStream is = s.getInputStream();DataInputStream dis = new DataInputStream(is);//接受客户端发送的数据String str = dis.readUTF();System.out.println("客户端说:" + str);//服务器向客户端发送数据:OutputStream os = s.getOutputStream();DataOutputStream dos = new DataOutputStream(os);dos.writeUTF("你好客户端,我接收到你的信息了");//流、网络关闭dos.close();os.close();dis.close();is.close();s.close();ss.close();}
}
客户端
package msb_7天学完java.网络编程;import java.io.*;
import java.net.Socket;//Client 客户端
public class Client {//客户端public static void main(String[] args) throws IOException {//程序入口System.out.println("客户端启动");//套接字:指定服务器的IP和端口号Socket s = new Socket("192.168.1.12",8888);//对于程序员来说,感受利用输出流来传送数据OutputStream os = s.getOutputStream();//通过套接字得到一个输出流DataOutputStream dos = new DataOutputStream(os);//套了一个数据流结合一起使用//传送数据:dos.writeUTF("你好服务器,我是客户端");//对服务器返回的数据做处理InputStream is = s.getInputStream();DataInputStream dis = new DataInputStream(is);String str = dis.readUTF();System.out.println("服务器对我说:" + str);//流,网络关闭dis.close();is.close();dos.close();os.close();s.close();}
}