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();
解决必定采纳。最好有代码。 展开
// 设置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();
解决必定采纳。最好有代码。 展开
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();
}
}
}这是我之前的练习代码,不是针对你这个问题的,不过你对照着改一下就可以用了。
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是什么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |