我正在尝试在Java中进行套接字设置。 我想从客户端到服务器发送和接收数据。 客户端是我的android应用程序,服务器是我的PC。 客户端到服务器正在连接,并且还接收数据。但是,当我尝试将其从服务器发送到客户端时,Android设备未收到它。我想在textview或Toast中提及它。
预先感谢
Android Studio 3.1-android版本为oreo
Socket Test V 3.0.0
客户:(工作正常)
public class SendMessage extends AsyncTask<String, Void, Void>
{
Socket s;
DataOutputStream dos;
PrintWriter pw;
@Override
protected Void doInBackground(String... voids)
{
String message = voids[0];
try
{
s = new Socket( "197.70.107.35", 3344 );
pw = new PrintWriter( s.getOutputStream() );
pw.write( message );
pw.flush();
//pw.close();
//s.close();
} catch (IOException e)
{
e.printStackTrace();
}
return null;
}
}
服务器部件(问题)
public class MainActivity extends AppCompatActivity {
EditText e1;
TextView e2;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
e1 = (EditText) findViewById( R.id.editText );
e2 = (TextView) findViewById( R.id.receive );
Thread myThread = new Thread( new MyServerThread() );
myThread.start();
}
class MyServerThread implements Runnable {
Socket s;
ServerSocket ss;
InputStreamReader inr;
BufferedReader bufferedReader;
String message;
Handler h = new Handler();
public void run() {
try {
char[] data = new char[10];
ss = new ServerSocket( 3344 );
while (true) {
InputStreamReader inr = new InputStreamReader( s.getInputStream() );
int da = inr.read( data, 0, 9 );
System.out.print( data );
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void send(View v)
{
SendMessage SendMessage= new SendMessage();
SendMessage.execute( e1.getText().toString());
}
}
需要以Toast msg或Textview的形式从SERVER接收数据到移动应用程序(客户端)。