在了解网络编程之前,我们先了解一下什么叫套接字
套接字即指同一台主机内应用层和运输层之间的接口
由于这个套接字是建立在网络上建立网络应用的可编程接口
因此也将套接字称为应用程序和网络之间的应用程序编程接口!
关于TCP和UDP这里就不作太多介绍了,我们知道TCP是面向连接的,UDP是不面向连接的,TCP可靠,UDP不可靠即可!
我们来设计一个应用来示范一下,流程:
- 客户机从键盘读取一行字符串,并通过套接字发送到服务器。
- 服务器从连接的套接字获取这行字符串,并对其进行修改(将小写转为大写),最后再发回客户端。
- 客户机读取到服务器发送的修改后的字符串,并输出到屏幕。
不说太多了,直接上代码:
TCP套接字编程:
客户端:
package TCP套接字编程; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.Socket; import java.net.UnknownHostException; public class TCPClient { public static void main(String[] args) throws UnknownHostException, IOException { // 创建两个String类型的字符串用来接收和发送字符 String sentence; String modifiedSentence; // 创建输入流,用来接收键盘输入 BufferedReader inFromUser = new BufferedReader(new InputStreamReader( System.in)); // 创建一个Scoket型的clientScoket用来发起服务器和客户机之间的连接 String postname = "169.264.187.20";// 客户端ip地址(请用自己电脑的ip地址代替) Socket clientSocket = new Socket(postname, 6789); // 创建向服务器发送信息的输出流 DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream()); // 创建输入流,用来接收来自服务器的字节流 BufferedReader inFromServer = new BufferedReader(new InputStreamReader(