我正在使用此代码,请向我建议与我的问题有关的任何链接和任何书籍。这段代码可以正常工作,但是在使用wifi direct从两个设备之间的文本视图中获取内容后,仅用于发送文本。
btnSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String msg=writeMsg.getText().toString();
sendRecieve.write(msg.getBytes());
}
});
public class ServerClas extends Thread{
Socket socket;
ServerSocket serverSocket;
@Override
public void run() {
try{
serverSocket=new ServerSocket(8888);
socket=serverSocket.accept();
sendRecieve=new SendRecieve(socket);
sendRecieve.start();
}catch (IOException e){
e.printStackTrace();
}
}
}
public class SendRecieve extends Thread{
private Socket socket;
private InputStream inputStream;
private OutputStream outputStream;
public SendRecieve(Socket skt){
socket=skt;
try{
inputStream=socket.getInputStream();
outputStream=socket.getOutputStream();
}catch (IOException e){
e.printStackTrace();
}
}
@Override
public void run() {
byte[] buffer=new byte[1024];
int bytes;
while (socket!=null){
try{
bytes=inputStream.read(buffer);
if( bytes>0){
handler.obtainMessage(MESSAGE_READ,bytes,-1,buffer).sendToTarget();
}
}catch(IOException e){
e.printStackTrace();
}
}
}
public void write(byte[] bytes){
try {
outputStream.write(bytes);
} catch (IOException e) {
e.printStackTrace();
}
}
}
public class ClientClass extends Thread{
Socket socket;
String hostAdd;
public ClientClass(InetAddress hostAddress){
hostAdd=hostAddress.getHostAddress();
socket=new Socket();
}
@Override
public void run() {
try{
socket.connect(new InetSocketAddress(hostAdd,8888),500);
sendRecieve=new SendRecieve(socket);
sendRecieve.start();
}catch (IOException e){
e.printStackTrace();
}
}
}
}