A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘小峰 黑马帝   /  2011-12-29 21:47  /  2951 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 流氓l老醯 于 2011-12-30 13:46 编辑

怎么用Socket传送一个String型的数组啊,BufferedReader好像不行

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 冯祖焱 于 2011-12-29 21:54 编辑

  1. String[] strs = new String[] { "str1", "str2" };

  2. BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));

  3. for(String str:strs){
  4.         bw.write(str);
  5.         bw.newLine();
  6.         bw.flush();
  7. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
给你一段代码,不知道能不能解决你的问题
可以直接传字符串,也可以将字符串数组封装对象进行传输。
服务端代码:
import java.io.ObjectInputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServer {
        public static void main(String[] args) throws Exception{
                ServerSocket ss = new ServerSocket(9091);
                Socket s = ss.accept();
                System.out.println("new connection");
                ObjectInputStream oi = new ObjectInputStream(s.getInputStream());
                String [] arr = (String[]) oi.readObject();
                System.out.println(arr[0] + arr[1]);
        }
}
客户端代码:
import java.io.ObjectOutputStream;
import java.net.Socket;

public class Mysocket {
    public static void main(String[] args) throws Exception {
            Socket s = new Socket("localhost",9091);
            ObjectOutputStream out = new ObjectOutputStream(s.getOutputStream());
            out.writeObject(new String[]{"123","232"});
            out.flush();
            out.close();
    }
}

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
目前我也在看这个网络的视频,DatagramPacket在封包的时侯用的都是byte[]字节数组,
可以将你要发送的数据getBytes[]将它变成字节数组,再进行打包,发送。

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报

很简单:比如:
   String s="你好,我是好人".getBytes();
把字符串变成字节就可以传输了
回复 使用道具 举报
多谢各位啦{:soso_e183:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马