80,351
社区成员
发帖
与我相关
我的任务
分享
在Android Stdio中
这是客户段的代码
package com.example.demo7;
import android.util.Log;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.Buffer;
import java.nio.charset.StandardCharsets;
public class SocketThread extends Thread {
private Socket socket;
@Override
public void run() {
try {
System.out.println("正在进行服务器连接。。。。。。。。。。");
socket = new Socket("192.168.210.18",20000);
System.out.println("服务器连接成功");
OutputStream outputStream = socket.getOutputStream();
outputStream.write(("你好!我是来自客户端").getBytes(StandardCharsets.UTF_8));
new Thread(){
@Override
public void run() {
try {
BufferedReader br =new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
System.out.println("来自服务器的消息:"+br.readLine().equals(null));
String serverinfo =null;
while((serverinfo=br.readLine())!=null){
Log.i("来自服务器的消息:",serverinfo);
System.out.println("来自服务器的消息:"+serverinfo);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
// socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器代码
读写子线程
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class SocketServer implements Runnable {
public Socket socket;
public int i;
public BufferedReader br;
public SocketServer(Socket socket ,int i ){
try {
br =new BufferedReader(new InputStreamReader(socket.getInputStream(),"utf-8"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.socket=socket;
this.i=i;
}
@Override
public void run() {
System.out.println(i+"号客户端线程已启动!");
String content =null;
while((content=ReadFromClient())!=null){
for(Socket s :SocketMain.socketlist){
System.out.println(i+"号客户端的消息:"+content);
try {
OutputStream os =s.getOutputStream();
os.write(("server info :"+content+"\n").getBytes("utf-8"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public String ReadFromClient(){
try {
return br.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
SocketMain.socketlist.remove(socket);
}return null;
}
}
他俩已经连接上了
可是服务器只能显示客户端的消息,但是客户端显示不出服务器的消息。