80,348
社区成员
发帖
与我相关
我的任务
分享
package com.example.administrator.ffffff;
import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
public class MainActivity extends Activity {
EditText show;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = (EditText)findViewById(R.id.show);
new Thread()
{
public void run()
{
try
{
Socket socket = new Socket("192.168.1.102",30000);//这里连接超时
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = br.readLine();
show.setText("来自服务器的数据:" + line);
br.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}.start();
}
}
//这个代码是运行在 Windows 上的
import java.util.concurrent.locks.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.net.*;
public class dd
{
public static void main(String[]args)throws IOException
{
ServerSocket ss = new ServerSocket(30000);
while(true)
{
Socket s= ss.accept();
OutputStream os = s.getOutputStream();
os.write("您好,您收到了服务器的新年祝福!\n".getBytes("utf-8"));
os.close();
ss.close();
}
}
}
new Thread()
{
public void run()
{
try
{
Socket socket = new Socket("192.168.1.102",30000);//这里连接超时
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line = br.readLine();
show.setText("来自服务器的数据:" + line);
br.close();
socket.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}.start();
这段写的很有问题,你应该需要新建一个子线程,通过white(ture){
//监听是否有信息
}
你现在只监听一次,连接不上很正常。而且子线程你是不能更新ui的,所以不能调用setText方法,需要用handler处理