Java代码:(服务器端)
public class ServerSocket_Main {
public static void main(String[] args) throws Exception {
//创建ServerSocket,用来监听客户端Socket的连接请求
ServerSocket server = new ServerSocket(9048);
//采用循环不断接收用户的请求
while(true){
Socket socket = server.accept();
OutputStream osw = socket.getOutputStream();
System.out.println("启动服务端...");
osw.write("服务器端发来的消息".getBytes("UTF-8"));
osw.close();
socket.close();
server.close();
}
}
Android代码:(客户端)
public class May29_SocketActivity extends Activity {
/** Called when the activity is first created. */
private TextView show;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (TextView)findViewById(R.id.show);
try {
Socket s = new Socket("192.168.1.114", 9048);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = br.readLine();
show.setText("服务器传来的消息:"+line);
br.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
同事我也在Mainifest.xml里配置了<uses-permission android:name="android.permission.INTERNET"/>
我首先启动以Java程序运行的服务器端,再启动Android的客户端后,但是客户端却一直没收到消息显示出来,而且Java程序里的那段System.out.print代码也没打印出任何东西,请各位前辈指导下。
public class ServerSocket_Main {
public static void main(String[] args) throws Exception {
//创建ServerSocket,用来监听客户端Socket的连接请求
ServerSocket server = new ServerSocket(9048);
//采用循环不断接收用户的请求
while(true){
Socket socket = server.accept();
OutputStream osw = socket.getOutputStream();
System.out.println("启动服务端...");
osw.write("服务器端发来的消息".getBytes("UTF-8"));
osw.close();
socket.close();
server.close();
}
}
Android代码:(客户端)
public class May29_SocketActivity extends Activity {
/** Called when the activity is first created. */
private TextView show;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
show = (TextView)findViewById(R.id.show);
try {
Socket s = new Socket("192.168.1.114", 9048);
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
String line = br.readLine();
show.setText("服务器传来的消息:"+line);
br.close();
s.close();
} catch (Exception e) {
e.printStackTrace();
}
}
同事我也在Mainifest.xml里配置了<uses-permission android:name="android.permission.INTERNET"/>
我首先启动以Java程序运行的服务器端,再启动Android的客户端后,但是客户端却一直没收到消息显示出来,而且Java程序里的那段System.out.print代码也没打印出任何东西,请各位前辈指导下。
后来放在真机上运行还是一样。
socket.close();
server.close();
关闭了
应该是这个问题,Server端发出去不要关Socket,让Client接收完了,在Client那边关闭。