通信网络技术-socket通信实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计实验报告题目:简单的socket通信实验
年月日
1、实验目的
掌握网络服务器端和客户端通信的发包和收包的原理。
2、实验内容
(一)下载编程软件配置,编程环境。
(二)设计C/S的通信机制,画出服务器端和客户端流程图。(三)对服务器端和客户端通信进行编程实现。
(四)对实验过程和结果进行反思总结。
3、实验步骤
(一)编程环境:eclipse(java)
(二)服务器端和客户端流程图:
(三)代码实现
客户端:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import .Socket;
class ClientRead extends Thread {
private Socket client;
public ClientRead(Socket client) {
this.client = client;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(
client.getInputStream()));
String line = "";
while (true) {
line = br.readLine();
if (!"".equals(line) && line != null) {
System.out.println("服务器说:" + line);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
class ClientWrite extends Thread {
private Socket client;
public ClientWrite(Socket client) {
this.client = client;
}
public void run() {
BufferedReader input = new BufferedReader(new InputStreamReader( System.in));
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
client.getOutputStream()));
String str = "";
while (true) {
str = input.readLine();
bw.write(str);
bw.newLine();
bw.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class ClientChat {
public static void main(String[] args) throws IOException { // TODO Auto-generated method stub
Socket client = new Socket("127.0.0.1", 9988);
System.out.println("客户端已经建立。。。");
// 1.启动线程用于写给服务器
new ClientRead(client).start();
// 2.启动线程用于读取服务器的数据
new ClientWrite(client).start();
}
}
服务器端:
package socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import .ServerSocket;
import .Socket;
class ServerRead extends Thread {
private Socket s;
public ServerRead(Socket s) {
this.s = s;
}
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = "";
while (true) {
line = br.readLine();
if (!"".equals(line) && line != null) {
System.out.println("客户端说:" + line);
}
}
} catch (Exception e) {
}
}
}
class ServerWrite extends Thread {
private Socket socket;
public ServerWrite(Socket socket) {
this.socket = socket;
}
public void run() {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
String str = "";
while (true) {
str = input.readLine();
bw.write(str);
bw.newLine();
bw.flush();
}
} catch (Exception e) {
}
}
}
public class ServersChat {
public static void main(String[] args) throws Exception { @SuppressWarnings("resource")
ServerSocket server = new ServerSocket(9988);
System.out.println("服务器已经建立,,等待客户端连接。。");