socket编程 这是我client端的代码 主要输出这两个字节 那如何在服务端接收呢?要用线程。

System.out.println("客户端启动");//设置ip地址和端口号Sockets=newSocket("localhost",45555);//获取sock... System.out.println("客户端启动");
// 设置ip地址和端口号
Socket s = new Socket("localhost", 45555);
// 获取socket输出流 写数据
OutputStream out = s.getOutputStream();
//第一个字节数组
out.write(m.execute(), 0, 1111);

out.flush();
s.close();
Socket s1=new Socket("localhost",45555);

OutputStream out1=s1.getOutputStream();
//第二个字节数组
out1.write(m.execute(), 1111, 1111);
out1.flush();
解决必定采纳。最好有代码。
展开
 我来答
阿苏257
推荐于2016-09-12 · 超过21用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:44.1万
展开全部
public class Server {
public static void main (String args[]) throws IOException{
int port = 45555;
ServerSocket server = new ServerSocket(port);
while(true){
Socket socket = server.accept();
//为每一个socket新建一个线程
new Thread(new Task(socket)).start();
}
}
//内部线程类
static class Task implements Runnable{
private Socket socket;
public Task(Socket socket){
this.socket=socket;
}
public void run(){
try{
handleSocket();
}catch(Exception e){
e.printStackTrace();
}
}
//与客户端通信部分
private void handleSocket() throws Exception{
//接收客户端信息
BufferedReader br =new BufferedReader( new InputStreamReader(socket.getInputStream(),"GBK"));
StringBuilder sb = new StringBuilder();
String temp;
int index;
while((temp=br.readLine())!=null){
if((index=temp.indexOf("\n"))!=-1){
sb.append(temp.substring(0,index-1));
break;
}
sb.append(temp);
}
System.out.println("client says:"+sb);
writer.close();
br.close();
socket.close();
}
}
}这是我之前的练习代码,不是针对你这个问题的,不过你对照着改一下就可以用了。
更多追问追答
追问
这是我改的代码
//接收客户端信息
BufferedInputStream in = new BufferedInputStream(socket.getInputStream());
byte[] b=new byte[1111];
in.read(b, 0, 1111);System.out.println("client says:"+Arrays.toString(b));
为什么全部读过来
追答
你的m是什么?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式