Java Socket编程之简单的C/S一对一的实现
2013-06-03 12:51
351 查看
Server:
Client:
package com.wjy.server; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.ServerSocket; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; /** * caution:boot the server first. * @author Jiyuan Wang * */ public class TalkServer extends JFrame implements ActionListener{ private static JButton send=null; private static JTextField inputText=null; private static JTextArea showText=null; private static ServerSocket serverSocket=null; private static Socket socket=null; private static DataInputStream dataInputStream=null; private static DataOutputStream dataOutputStream=null; public TalkServer(){ send=new JButton("Send"); send.addActionListener(this); send.setEnabled(true); inputText=new JTextField(); showText=new JTextArea(); add(send,BorderLayout.NORTH); add(inputText, BorderLayout.SOUTH); add(showText, BorderLayout.CENTER); setTitle("Server"); setBounds(1000,0,400,400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new TalkServer(); try { serverSocket=new ServerSocket(4170); socket=serverSocket.accept(); showText.append("Connect successd.\n"); dataInputStream=new DataInputStream(socket.getInputStream()); dataOutputStream=new DataOutputStream(socket.getOutputStream()); while (true) { showText.append("Client said: "+dataInputStream.readUTF()+"\n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { dataOutputStream.writeUTF(inputText.getText()); dataOutputStream.flush(); //本人一直把这个程序调试不通,最后发现没加这句话导致服务端显示不了客户端的输入。 showText.append("I said: "+inputText.getText()+"\n"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
Client:
package com.wjy.client; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.JTextField; /** * caution:boot the server first. * @author Jiyuan Wang * */ public class TalkClient extends JFrame implements ActionListener{ private static JButton send=null; private static JTextField inputText=null; private static JTextArea showText=null; private static Socket socket=null; private static DataInputStream inputStreamReader=null; private static DataOutputStream outputStreamWriter=null; public TalkClient(){ send=new JButton("Send"); send.addActionListener(this); send.setEnabled(true); inputText=new JTextField(); showText=new JTextArea(); add(send,BorderLayout.NORTH); add(inputText, BorderLayout.SOUTH); add(showText, BorderLayout.CENTER); setTitle("Client"); setBounds(0,0,400,400); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new TalkClient(); try { socket=new Socket("127.0.0.1",4170); inputStreamReader=new DataInputStream(socket.getInputStream()); outputStreamWriter=new DataOutputStream(socket.getOutputStream()); while(true){ showText.append("The Server said: "+inputStreamReader.readUTF()+"\n"); } } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub try { outputStreamWriter.writeUTF(inputText.getText()); outputStreamWriter.flush(); //本人一直把这个程序调试不通,最后发现没加这句话导致服务端显示不了客户端的输入。 showText.append("I said: "+inputText.getText()+"\n"); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } }
相关文章推荐
- Java Socket编程之简单的C/S一对一的实现
- Java Socket编程实现简单的问候服务
- java socket编程实现简单聊天室功能 单线程执行
- Java Socket编程 - 简单的问候服务实现
- Java Socket编程 - 简单的问候服务实现
- Java Socket编程 - 简单的问候服务实现
- 初学Java Socket编程实现简单的问候服务
- 简单图形编程的学习(2)---点 (small basic实现)
- Android Socket 编程简单实现及 属性设置
- 一起谈.NET技术,使用WCF实现SOA面向服务编程——简单的WCF开发实例
- Linux下简单的多线程编程--线程池的实现
- 【编程技巧】实现简单柱状图
- 01 TCP Socket 编程_一个简单的服务端程序和客户端程序实现
- Linux 网络编程基础---------------客户端/服务器的简单实现
- 使用WC“.NET研究”F实现SOA面向服务编程——简单的WCF开发实例
- Android Socket 编程简单实现
- java Socket 的简单使用 实现对话交流功能
- 单片机编程实现用网址域名获取服务器IP,超简单,一句话
- Java Socket编程实现在终端上的双工Chat
- windows编程之简单音乐播放器的实现