




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论