知识大全 分享socket 客户端-服务器入门代码

Posted

篇首语:所谓得体,就是有些话不必说尽,有些事不必做尽。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 分享socket 客户端-服务器入门代码相关的知识,希望对你有一定的参考价值。

  这是从另一个论坛的代码修改的 原来有很多错误 我已经修改 供大家欣赏!

  这中间还用到了设计模式中的代理模式 还有一些jframe入门的东西

   客户端

  public class JavaClient extends JFrame implements ActionListener//以JFrame为基类 实现ActionListener接口    JButton sendButton; // 发送 按钮    JTextField inputField; // 输入框    JTextArea outputArea; // 服务器返回框    static ClientAgent ca;    public JavaClient() //在建构函数中完成图形界面的初始化            inputField=new JTextField( 这里输入 ); //供客户端输入的文本框        outputArea=new JTextArea( 服务器返回 ); //显示服务器返回数据的文本域        sendButton=new JButton( 发送 );        JPanel panel=new JPanel(); //新建面板        panel setLayout(new BorderLayout()); //设置面板风格为BorderLayout        panel add(inputField BorderLayout NORTH); //放置控件        panel add(outputArea BorderLayout CENTER);        panel add(sendButton BorderLayout PAGE_END);        sendButton addActionListener(this);        setTitle( Java通讯客户端 );        setContentPane(panel);        public static void main(String[] args)            JavaClient frame=new JavaClient();        frame pack();//注意javaClient是JFrame的派生类 调用基类方法        frame setVisible(true);        ca=new ClientAgent( ); //传递服务器名称和端口号        public void actionPerformed(ActionEvent ae)            if(ae getSource()==sendButton) //判断事件源控件是否是 发送 按钮                try                    ca sendRequest(inputField getText()); //发送文本框中的文本            System out println( send: +inputField getText());        catch(Exception ex)                    ex printStackTrace();                outputArea append( \\n +ca getResponse()); //接收服务器回应并写入文本域           

   客户代理端

  import java io *;import *;/** * @author Administrator * * TODO To change the template for this generated type ment go to * Window Preferences Java Code Style Code Templates */public class ClientAgent     PrintStream ops; //输出流(指向服务器)    DataInputStream ips;//输入流(来自服务器)    BufferedReader bf;    String cltRequest;//客户端请求    String svrResponse;//服务器端回应

  public ClientAgent(String serverName int port)            try                Socket clientSocket=new Socket(serverName port ); //根据服务器名和端口号建立Socket        ops=new PrintStream(clientSocket getOutputStream());//获得Socket的输出流        //ips=new DataInputStream(clientSocket getInputStream());//获得Socket的输入流        bf = new BufferedReader(new InputStreamReader(clientSocket getInputStream()));                catch(Exception e)                System out println( 无法连接服务器! );                public void sendRequest(String request)            ops println(request); //向Socket的输出流写入字符串        public String getResponse()            String str=new String();        try                    //str=ips readLine(); //从Socket的输入流读入字符串

  str = bf readLine();            System out println( 服务器返回 +str);                catch(IOException e) //必须捕获错误        return str;   

   服务器端

  import java io *;import *;/** * @author Administrator * * TODO To change the template for this generated type ment go to * Window Preferences Java Code Style Code Templates */public class ServerAgent     ServerSocket svrSkt=null;    Socket cltSkt=null;    //DataInputStream input=null; //输入流 来自客户端    BufferedReader inf=null;    PrintStream output=null; //输出流 指向客户端

  public ServerAgent(int port) //main()函数传递监听端口号            System out println( 服务器代理正在监听 端口 +port);        try                    svrSkt=new ServerSocket(port); //开始监听        catch(IOException e)System out println( 监听端口 +port+ 失败 );        try                    cltSkt=svrSkt accept(); //接收连接请求                catch(IOException e)System out println( 连接失败 );        try                    //input=new DataInputStream(cltSkt getInputStream()); //获得输入流            inf = new BufferedReader(new InputStreamReader(cltSkt getInputStream()));            output=new PrintStream(cltSkt getOutputStream()); //获得输出流                catch(IOException e)        output println( 欢迎 );        public String getRequest()            System out println( Server getRequest );        String frmClt=null;        try                    //frmClt=input readLine();            frmClt = inf readLine();            System out println( After Server getRequest: +frmClt);                catch(Exception e)            System out println( 无法读取端口 );            System exit( );                return frmClt;        public void sendResponse(String response)            System out println( Server sendResponse );        try                    output println(response);                catch(Exception e)            System out println( 写端口失败 );            System exit( );                public static void main(String[] args) throws IOException            ServerAgent sa=new ServerAgent( );        while(true)                    sa sendResponse(sa getRequest());           

cha138/Article/program/Java/hx/201311/26907

相关参考

知识大全 多线程对多个客户端的监听

  这是一个比较简单的例子来说明socket编程服务器端使用了多线程来监听客户端  服务器端的代码  packageSocketTest;  importjavaio*;  import*;  imp

知识大全 c#(Socket)同步套接字代码示例

c#(Socket)同步套接字代码示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  同步客户端

知识大全 Java Socket多线程服务端、客户端

JavaSocket多线程服务端、客户端  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  //主方

知识大全 socket 线程 思路 java

  网上参考别人的例子改自己的程序终于搞明白了原来在socket的服务器端设置线程并不是像之前想的那样建立一个连接后就重新开一个端口去监听这样的想法遇到了很多问题首先当我把客户端弄成for循环递增的链

知识大全 Java socket 入门编程实例

Javasocket入门编程实例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  例子是学习编程的

知识大全 用Socket类实现HTTP协议客户端应用

用Socket类实现HTTP协议客户端应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Htt

知识大全 C#异步Socket代码示例

C#异步Socket代码示例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面的代码示例演示如

知识大全 js字符串去重复id的实现代码

最近由于需要我们将相关id的重复的去掉一个是客户端一个后台程序把关这里分享下js的去重复id的实现代码 <!DOCTYPEPUBLIC"<fpclass=\'fp-570no\'

知识大全 Flex Socket与Java通讯客户端写法

FlexSocket与Java通讯客户端写法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &l

知识大全 Java Socket编程(三)服务器Sockets

JavaSocket编程(三)服务器Sockets  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!