通信网络技术-socket通信实验

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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("服务器已经建立,,等待客户端连接。。");

相关文档
最新文档