没有合适的资源?快使用搜索试试~ 我知道了~
首页Java多线程_ServerSocket服务端与客户端通信案例
Java多线程_ServerSocket服务端与客户端通信案例
需积分: 50 20 下载量 93 浏览量
更新于2023-03-16
评论
收藏 472KB PDF 举报
ServerSocket服务端与客户端通信DEMO,讲述如何使用多线程的方式,使得多个客户端与服务端通信。
资源详情
资源评论
资源推荐

【ServerSocket服务端与客户端通信案例】
public class TestTCPServerDemo {
public static void main(String[] args) {
//【服务端】
//1.创建ServerSocket类型的对象,绑定端口号
//2.调用accept()方法,等待客户端的连接。如果连接成功,将获得Socket
对象。
//3.通过Socket进行通信 (Socket可以获取输入输出流对象)
//4.关闭Socket,释放连接资源
}
}
java.net.ServerSocket 类
此类实现服务器套接字。服务器套接字等待请求网络传入。
相关类和方法介绍
<1>ServerSocket 类
描述服务器端的套接字(好比作一个插线板)
(1)ServerSocket(int port)
根据参数传递的端口号创建对象(此端口作为程序的端口地址)
(2)Socket accept()
持续监听指定端口的连接请求,一直阻塞,直到有连接接入。
(3)void close()
关闭套接字,释放资源
public class TestTCPClientDemo {
public static void main(String[] args) {
//【客户端】
//1.创建Socket对象,指定要连接的服务器的ip地址和端口号。
//2.通过Socket进行通信 (Socket可以获取输入输出流)
//关闭Socket,释放链接资源
}
}
java.lang.Socket
此类实现客户端套接字(也可叫“套接字”)。套接字是两台机器间通信的端点。
<2>Socket 类
描述客户端的套接字(好比手机的插口)
(1)Socket(String host,int port)
根据指定的 ip 地址和端口号创建对象
(2)InputStream getInputStream()
获取当前套接字的输入流对象
(3)OutputStream getOutputStream()
获取当前套接字的输出流对象
(4)void close()
关闭套接字,释放资源

创建ServerSocket对象
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class TestTCPServerDemo {
public static void main(String[] args) {
try {
//【服务端】
//1.创建ServerSocket类型的对象,绑定端口号
ServerSocket ss = new ServerSocket(6666);
//2.调用accept()方法,等待客户端的连接。如果连接成功,将获得
Socket对象。
System.out.println("服务端已经就绪,等待链接...");
Socket s = ss.accept();//一直阻塞状态,一直等待客户端的连接
//3.通过Socket进行通信 (Socket可以获取输入输出流对象)
. . .
//4.关闭Socket,释放连接资源
s.close();
ss.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("服务结束,请打分");
}
}
}
创建 Socket 对象
import java.io.IOException;
import java.net.Socket;
public class TestTCPClientDemo {
public static void main(String[] args) {
try {
//【客户端】
//1.创建Socket对象,指定要连接的服务器的ip地址和端口号。
Socket s = new Socket("192.168.68.7",6666);
//2.通过Socket进行通信 (Socket可以获取输入输出流)
//3.关闭Socket,释放链接资源
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

接收客户端信息
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TestTCPServerDemo {
public static void main(String[] args) {
try {
//【服务端】
//1.创建ServerSocket类型的对象,绑定端口号
ServerSocket ss = new ServerSocket(6666);
//2.调用accept()方法,等待客户端的连接。如果连接成功,将获得
Socket对象。
System.out.println("服务端已经就绪,等待链接...");
Socket s = ss.accept();//一直阻塞状态,一直等待客户端的连接
//3.通过Socket进行通信 (Socket可以获取输入输出流对象)
//从客户端读取信息
BufferedReader br = new BufferedReader(new
InputStreamReader(s.getInputStream()));
String str = br.readLine(); //阻塞的方法,一直读取客户端的信
息
System.out.println("客户端发来信息: " + str);
//4.关闭Socket,释放连接资源
s.close();
ss.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println("服务结束,请打分");
}
}
}
由客户端向服务端发送数据信息
import java.io.IOException;
import java.io.PrintStream;
import java.net.Socket;
public class TestTCPClientDemo {
public static void main(String[] args) {
try {
//【客户端】
//1.创建Socket对象,指定要连接的服务器的ip地址和端口号。
Socket s = new Socket("192.168.68.7",6666);
//2.通过Socket对象获取流对象,进行数据交互 (Socket可以获
取输入输出流)
//通过Socket对象获取getOutputStream()
//创建输出流,指向服务器端的程序发送:hello zaima?
PrintStream ps = new PrintStream(s.getOutputStream());
ps.println("hello zaima?");
System.out.println("数据发生至服务器成功!");
//3.关闭Socket,释放链接资源
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
剩余11页未读,继续阅读


















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0