已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务器端状态: 客户端状态: 下面是通信过程: (附源程序代码) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import .ServerSocket; import .Socket; public class SimpleServer /* * param 潇水 */ ServerSocket sever = null;/ 服务器的监听socket Socket client = null;/ 客户端 BufferedReader in = null;/ 输入流 PrintStream out = null;/ 输出流 SimpleServer(int port) System.out.println(“服务器端正在监听,端口:“ + port); try sever = new ServerSocket(port); catch (IOException e) System.out.println(“服务器端口“ + port + “连接失败。“); try client = sever.accept();/ 接收连接请求 catch (IOException e) System.out.println(“连接失败!“); try in = new BufferedReader(new InputStreamReader( client.getInputStream();/ 获得输出流 out = new PrintStream(client.getOutputStream(); catch (IOException e) / 收到客户端请求 public String getRequest() String frm = null; try frm = in.readLine();/ 以行为单位获取信息 System.out.println(“Server收到请求: “ + frm); catch (IOException e) System.out.println(“无法读取端口“); System.exit(0); return frm; / 发送响应给客户端 public void sendReply(String reply) try out.println(reply);/ 往客户端输出流写出数据 System.out.println(“server回复请求: “ + reply); catch (Exception e) System.out.println(“发送失败“); System.exit(0); public static void main(String args) / TODO Auto-generated method stub SimpleServer sev = new SimpleServer(8000); while (true) / 读取客户端的输入流并返回给客户端 sev.sendReply(sev.getRequest(); /客户端代码 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintStream; import .Socket; public class SimpleCilent /* * param 潇水 * 客户端模式 */ PrintStream out;/ 输出流 BufferedReader in;/ 输入流 public SimpleCilent(String servername, int port) try / 根据服务器名和端口号,连接服务器 Socket clientsocket = new Socket(servername, port); / 获取socket输入输出流 out = new PrintStream(clientsocket.getOutputStream(); in = new BufferedReader(new InputStreamReader( clientsocket.getInputStream(); catch (Exception e) System.out.println(“连接服务器失败.“); / 发送请求消息 public void sendReply(String reply) out.println(reply); System.out.println(“Client客户端发送请求为:“ + reply); / 收到服务端请求 public String getResponse() String str = null ; try str = in.readLine(); System.out.println(“Client收到Server的回复信息为:“ + str); catch (IOException e) System.out.println(“没有收到输入“); return str; /图形界面 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class clientFrame extends JFrame implements ActionListener /* * */ private static final long serialVersionUID = 1L; /* * param 潇水 */ JButton sendbtn; JTextField jtf; JTextArea jta; SimpleCilent client; clientFrame() JLabel jlab1 = new JLabel(“输入发送的信息:“); jtf = new JTextField(20); JPanel jp1 = new JPanel(); jp1.add(jlab1); jp1.add(jtf); JLabel jlab2 = new JLabel(“服务器返回的信息:“); jta = new JTextArea(6, 20); JScrollPane crollPanel=new JScrollPane(jta); JPanel jp2 = new JPanel(); jp2.setLayout(new BorderLayout(); jp2.add(jlab2, BorderLayout.NORTH); jp2.add(crollPanel, BorderLayout.CENTER); sendbtn = new JButton(“发送“); sendbtn.addActionListener(this); JPanel jp=new JPanel(); jp.setLayout(new BorderLayout(); jp.add(jp1,BorderLayout.NORTH); jp.add(sendbtn,BorderLayout.CENTER); jp.add(jp2,BorderLayout.PAGE_END); setTitle(“Socket界面“); this.getContentPane().add(jp); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Override public void actionPerformed(ActionEvent e) / TODO Auto-generated method stub if(e.getSource()=sendbtn) try client.sendReply(jtf.getText();/ 获取发送文本中的信息 catch (Exception ex) / 接受服务器回应并写入文本域 jta.append(client.getResponse()+“n“); public static void main(String args) /
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CRRA 0301-2023绿色再生塑料 产销监管链
- T/TMAC 231-2025电子器件用金刚石热沉片
- T/GDLC 022-2024温室气体 产品碳足迹 量化方法与要求 凝胶糖果
- T/CI 479-2024区域复合水灾害特征变异识别规程
- T/CABC 13-2024产品数字护照 动力蓄电池唯一编码
- T/CRHA 088-2024病理免疫组织化学检测质控品要求
- 2025~2026学年黑龙江齐齐哈尔市龙江县人教版上册第一次学情自测教学质量抽测六年级数学试卷【附答案】
- 2025-2026学年吉林省榆树市初中政治八年级期末上册自测高频题(附答案)
- 2027届江苏省南通市田家炳中学七年级数学第一学期期末检测模拟试题含解析
- 前台接待访客登记、引导与通知流程方案
- 2026-2027学年四年级上学期统编版语文单元练习卷 第一单元-1(含答案)
- 【应用方案】2026智慧农业农业机器人智能感知与精准作业一体化设计方案
- CSCO非小细胞肺癌诊疗指南(2026版)
- 压缩空气储能地下洞库施工方案
- T∕CCEAS008-2026 建设工程造价咨询成果文件质量标准
- (2026年)护理查对制度课件
- 班主任基本功大赛-情景答辩23题(中学组)
- 第六章 社会工作服务的专业理论及其应用 社会工作综合能力(中级)
- 毕业生就业指导讲座模板
- 小班认识土豆课件
- 先锋P99RS车载CD机中文说明书
评论
0/150
提交评论