客户端程序如下:
package Garfield.Client.Main;import android.app.Activity;
import android.os.Bundle;
import java.io.*;
import java.net.*;public class MainActivity extends Activity
{
/** 客户端会不停连接服务器 */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
while(true)
{
try
{
Thread.sleep(1000); //为了不过快刷屏,这里休眠了1秒
Socket tcpSocket = new Socket();
tcpSocket.connect(new InetSocketAddress(InetAddress.getByName("192.168.174.128"),30000), 1000);//限时连接
BufferedInputStream bis =new BufferedInputStream(tcpSocket.getInputStream());
int s2cType= bis.read();
System.out.println("s2cType="+s2cType);
ObjectInputStream ois = new ObjectInputStream(tcpSocket.getInputStream());
int ID = ois.readInt(); //这里阻塞了!!!为什么呢?请高手解答
System.out.println("ID="+ID);
}
catch(Exception e)
{
System.out.println("没找到服务器");
//未连接成功之前会一直连接
continue;
}
}
}
}服务器代码:
package server;import java.io.*;
import java.net.*;public class Server { public static void main(String[] args) {
int ID = 0;
try
{
ServerSocket ss = new ServerSocket(30000,0,InetAddress.getByName("192.168.174.128"));
while(true)
{ Socket s = ss.accept();
try
{
BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());
bos.write(1);
bos.flush(); //将该用户在服务器端ID发送给它,这将成为今后心跳包的标示
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeInt(ID);
oos.flush(); }
catch(Exception e)
{
e.printStackTrace();
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
问题用红色标出,很简单的程序,请高手指点
package Garfield.Client.Main;import android.app.Activity;
import android.os.Bundle;
import java.io.*;
import java.net.*;public class MainActivity extends Activity
{
/** 客户端会不停连接服务器 */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
while(true)
{
try
{
Thread.sleep(1000); //为了不过快刷屏,这里休眠了1秒
Socket tcpSocket = new Socket();
tcpSocket.connect(new InetSocketAddress(InetAddress.getByName("192.168.174.128"),30000), 1000);//限时连接
BufferedInputStream bis =new BufferedInputStream(tcpSocket.getInputStream());
int s2cType= bis.read();
System.out.println("s2cType="+s2cType);
ObjectInputStream ois = new ObjectInputStream(tcpSocket.getInputStream());
int ID = ois.readInt(); //这里阻塞了!!!为什么呢?请高手解答
System.out.println("ID="+ID);
}
catch(Exception e)
{
System.out.println("没找到服务器");
//未连接成功之前会一直连接
continue;
}
}
}
}服务器代码:
package server;import java.io.*;
import java.net.*;public class Server { public static void main(String[] args) {
int ID = 0;
try
{
ServerSocket ss = new ServerSocket(30000,0,InetAddress.getByName("192.168.174.128"));
while(true)
{ Socket s = ss.accept();
try
{
BufferedOutputStream bos = new BufferedOutputStream(s.getOutputStream());
bos.write(1);
bos.flush(); //将该用户在服务器端ID发送给它,这将成为今后心跳包的标示
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
oos.writeInt(ID);
oos.flush(); }
catch(Exception e)
{
e.printStackTrace();
}
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
问题用红色标出,很简单的程序,请高手指点
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货