`
lvwenwen
  • 浏览: 932049 次
  • 性别: Icon_minigender_1
  • 来自: 魔都
社区版块
存档分类
最新评论

socket发送接收消息(String message)

阅读更多
package com.qingshan.net.socket; 
 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.Socket; 
 
/**
* <pre>
* 客户端:发送信息/接收服务器反馈信息
* </pre>
* <hr Color="green" ></hr> 
* 2012 Qingshan Group 版权所有
* <hr Color="green" ></hr> 
* @author  thetopofqingshan
* @version 1.0.0
* @since   JDK 1.5
* @date    2012-4-25
*/ 
public class Client { 
 
    public void run(String ip, int port){ 
        OutputStream os = null; 
        InputStream is = null; 
        try {
            Socket client = new Socket(ip, port);//接连目标ip:192.168.1.114,port:4321
            os = client.getOutputStream();// 
            System.out.println("正在发送信息..."); 
            os.write("发了一条给到没有, 收到了请回复一样的信息".getBytes());//发送信息 
            os.flush();//注意:如果不使用flush方法,服务端将收到客户端发送的信息 
            client.shutdownOutput();
            is = client.getInputStream();// 
            byte[] buf = new byte[1024*8];//缓冲区 
            String msg="";
          
            for(int len=is.read(buf);len>0;len=is.read(buf)){
            msg+=new String(buf, 0, len);
            }
            client.shutdownInput();
            System.out.println("正在接收回复信息..."); 
            System.out.println("服务器返回的信息: "+msg); 
            System.out.println("接收回复信息完成"); 
        } catch (IOException e) { 
            e.printStackTrace(); 
        }finally{ 
            //所有服务 
            try { 
                os.close(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
            try { 
                is.close(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
    } 
     
    public static void main(String[] args) { 
        Client c=new Client();
        String ip="localhost";
       // ip="www.baidu.com";
       int port=8888;
       //int port=80;
        c.run(ip, port);
    } 


package com.qingshan.net.socket; 
 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.ServerSocket; 
import java.net.Socket; 
import java.util.concurrent.Executor; 
import java.util.concurrent.Executors; 
 
/**
* <pre>
*  服务器:处理客户端发来的信息, 处理后作为反馈信息返回
* </pre>
* <hr Color="green" ></hr> 
* 2012 Qingshan Group 版权所有
* <hr Color="green" ></hr> 
* @author  thetopofqingshan
* @version 1.0.0
* @since   JDK 1.5
* @date    2012-4-25
*/ 
public class Server { 
    private ServerSocket server; 
    private Socket client; 
 
    public Server() { 
        try { 
            this.server = new ServerSocket(8888);//接收请求的端口 
            System.out.println("服务已启动...."); 
            while (true) { 
                this.client = server.accept();//接收用户请求, 无在此等待, 有开启新的线程响应请求 
                if (client != null) { 
                    //开启接收与处理信息的服务 
                    Executor es = Executors.newCachedThreadPool();//线程池 
                    es.execute(new Recieve(client));//开启新的线程 
                } 
            } 
        } catch (IOException e) { 
            e.printStackTrace(); 
        } 
    } 
 
    /**
     * <pre>
     * 线程:用于接收与处理信息
     * </pre>
     * <hr Color="green" ></hr> 
     * 2012 Qingshan Group 版权所有
     * <hr Color="green" ></hr> 
     * @author  thetopofqingshan
     * @version 1.0.0
     * @since   JDK 1.5
     * @date    2012-4-25
     */ 
    public class Recieve implements Runnable { 
        public Recieve() { 
        } 
 
        public Recieve(Socket cleint) { 
            this.client = cleint; 
        } 
 
        Socket client; 
 
        public void run() { 
            try {
            String response="接收到 socket客户端信息 ";
                System.out.println("正在接收消息..."); 
                InputStream is = client.getInputStream(); 
                String msg = client.getInetAddress().getHostAddress() + ": "; 
                byte[] buf = new byte[1024*8];
                for(int len=is.read(buf);len>0;len=is.read(buf)){
                msg+=new String(buf, 0, len);
                }
                client.shutdownInput();
                System.out.println("客户端消息:"+msg); 
                System.out.println("正在发送信息..."); 
                OutputStream os = client.getOutputStream(); 
                os.write(response.getBytes());//发送信息 
                os.flush(); 
                client.shutdownOutput();
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 
 
    } 
 
    public static void main(String[] args) { 
        new Server(); 
    } 


分享到:
评论

相关推荐

    socket 改进实现定向发送信息

    //接收客户端信息并保存到缓存区 int _length = _client.Receive(_byte); //将数组转换成服务器 string str = Encoding.Default.GetString(_byte, 0, _length); _showMgs(str); } } catch (Exception ex) {...

    android实现的个人网络聊天室

    //向服务器发送消息 PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true); out.println(message); //接收来自服务器的...

    netty-server中采用的分包拆包源码,java开发用于实战项目

    private final static String message = "web.socket.message"; private final static String messages = "send.socket.message"; @Bean public Queue queueMessage() { return new Queue(RabbitmqConfig....

    Http协议 IIS

    string strText Encoding Default GetString oldArrText ; 处理客户端请求 ProcessRequest strText socket ; ShowMgs &quot;客户端:&quot; + strText ; } cSocket ; } } serverSocket ; } catch ...

    chatRoom 聊天室

    public ChatRoomClientFrame(String name, Socket socket) { super("chatroom"); Font f = new Font("楷体", Font.BOLD, 20); /* 设置字体 */ jta = new JTextArea(10, 10); /* 创建10行10列的空多行文本域 */ ...

    Java远程监控系统设计及功能介绍.doc

    Stringmessage=newString(packet.getData(),0,packet.getLength());// 得到指令 本程序中用到的指令 publicstaticfinalStringCommand_Connection="connection";//建 立连接 publicstaticfinalStringCommand_...

    QQ (6).zip

    //将我们的接收到的json包借读根据不同的message_type值来选择相应的类容 QJsonParseError parseError; qDebug(); QJsonDocument jsondoc = QJsonDocument::fromJson(data,&parseError;); if(jsondoc.isNull() ...

    Java NIO 聊天室 JSwing

    import java.awt.*;... //channel.write(ByteBuffer.wrap(new String("向服务端发送了一条信息").getBytes())); //在和服务端连接成功之后,为了可以接收到服务端的信息,需要给通道设置读的权限。 ...

    c# 加密和解密相关代码

    MD5(Message-Digest Algorithm 5)是一种被广泛使用的“消息-摘要 算法”。“消息-摘要算法”实际上就是一个单项散列函数,数据块通过单 向散列函数得到一个固定长度的散列值,数据块的签名就是计算数据块的散 列值...

    node-httpu:节点的 HTTPU(HTTP over UDP)实现

    节点-httpu ... 它使用两个辅助方法和一个额外的事件扩展了节点的 UDP 套接字。 用法 var socket = require('node-httpu').createSocket(options[, callback]);...string indicating the message type: ei

    CS监听模式ReceiveCallBack(IAsyncResult AR)

    //挂起AR,独占的使用AR来接收传过来的内容 int REnd = ClientSocket.EndReceive(AR); string StrOfREnd=Encoding.Unicode.GetString(MsgBuffer, 0, REnd); //截断的传输过来的字符串,"\n"前的是用户名 "\n"后...

    HTTPServerUtil:HTTP服务器

    HTTP服务器工具用于解析请求报文,构造响应报文与SOCKET配合实现TCP协议的HTTP服务器# 解析请求报文- **Handler**`调用getHandle(String message)静态方法,返回相应的Handler对象,再调用对象的parse()方法来解析...

    8583报文解析框架Simple8583.zip

    6)通过Socket将数据发送并接受响应(读取前两个字节长度,根据长度获取其剩余报文),根据IsoPackage解析报文域,解析得到BitMap后根据BitMap对数据域进行解析,并将值都放入到对应的field中 7)将数据都放在Map...

    C#写gps中心服务处理程序

    private static extern int SendMessage( int hWnd, // handle to destination window int Msg, // message int wParam, // first message parameter string lParam // second...

    HttpClient以及获取页面内容应用

    使用HttpClient发送请求、接收响应很简单,一般需要如下几步即可。 1.创建HttpClient对象。 HttpClient client = new HttpClient(); 2.创建请求方法的实例,并指定请求URL。如果需要发送GET请求,创建HttpGet对象;...

    java源码包---java 源码 大量 实例

    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个简单...

    java源码包2

    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个...

    java源码包3

    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个...

    java源码包4

    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器  Tcp服务端与客户端的JAVA实例源代码,一个...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    发送消息,同时对文本进行少量修改,发送end-of-messages消息,最后关闭连接。 Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的...

Global site tag (gtag.js) - Google Analytics