产品展示网站系统,凡科网建站入门教程,商业网点和商铺的区别,鄂州手机网站建设一、TCP编程
1.服务器端建立通讯#xff08;ServerSocket的使用#xff09;
服务器建立通讯ServerSocket。服务器建立Socket等待客户端连接并接收。建立IO输入流读取客户端发送的数据和向客户端发送数据。 具体代码#xff1a;
import java.io.BufferedReader;
import ja…一、TCP编程
1.服务器端建立通讯ServerSocket的使用
服务器建立通讯ServerSocket。服务器建立Socket等待客户端连接并接收。建立IO输入流读取客户端发送的数据和向客户端发送数据。 具体代码
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;public class Server {public static void main(String[] args) {try {ServerSocket ss new ServerSocket(8888);//8888表示服务器要监听的端口等待客户端连接。//如果8888端口已经被其他进程占用则会抛出异常IOException。System.out.println(启动服务器....);Socket s ss.accept();//接受客户端连接Socket套接口对象。System.out.println(客户端:s.getInetAddress().getLocalHost()已连接到服务器);//getInetAddress()返回客户端IP地址getLocalHost()返回域名和IP地址。BufferedReader br new BufferedReader(new InputStreamReader(s.getInputStream()));//读取客户端发送来的消息。String mess br.readLine();System.out.println(客户端mess);BufferedWriter bw new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));//向客户端发送消息。bw.write(mess\n);bw.flush();} catch (IOException e) {e.printStackTrace();}}
} ServerSocket不是一种Socket它可以监听服务器端口(端口号对应着某个应用程序)来获取客户端的连接情况通过接收客户端连接来建立Socket。如果监听端口已经被其他进程占用则会抛出异常IOException。
2.客户端建立通讯Socket
创建Socket通信设置通信服务器的IP和Port建立IO输出流向服务器发送数据消息和读取服务器发送来的数据消息 具体代码
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.Socket;
import java.net.UnknownHostException;public class Client {public static void main(String[] args) {try {Socket s new Socket(127.0.0.1,8888);//127.0.0.1为要进行通讯的服务器IP8888为要客户端连接到的服务器端口//客户端发起Https通讯要走传输层端口号443而http通讯则是80端口。//而服务器端端口号是指定的不是固定的。//构建IOInputStream is s.getInputStream();OutputStream os s.getOutputStream();BufferedWriter bw new BufferedWriter(new OutputStreamWriter(os));//向服务器端发送一条消息bw.write(测试客户端和服务器通信服务器接收到消息返回到客户端\n);bw.flush();//读取服务器返回的消息BufferedReader br new BufferedReader(new InputStreamReader(is));String mess br.readLine();System.out.println(服务器mess);} catch (UnknownHostException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}
} Socket建立TDP连接绑定服务器IP地址和指定服务器端口与服务器建立连接。当服务器地址不正确或无法识别时会抛出UnknownHostException异常当Socket等待连接超时会抛出SocketTimeoutException异常当服务器端口被占用无法绑定端口时会抛出BindException异常当服务器没有启动没有监听对应端口或拒绝连接时会抛出ConnectException异常它们都是IOException的直接或间接子类。