首页 > 代码库 > Android的Socket编程尝试失败了,求帮助

Android的Socket编程尝试失败了,求帮助

============问题描述============


服务器端:把客户端传来的int加1,传回去
public class Server extends Thread
{
	@Override
	public void run()
	{
		// TODO Auto-generated method stub
		try
		{
			ServerSocket serverSocket=new ServerSocket(10000);
			System.out.println("Start Server");
			while(true)
			{
				Socket socket=serverSocket.accept();
				System.out.println("Get Socket");
				
				int i=socket.getInputStream().read();
				i++;
				
				socket.getOutputStream().write(i);		
				
				
				socket.close();
			}
		} catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String args[])
	{
		new Server().start();
	}
	

}


客户端:activity的布局,一个button,按了就连接服务器并且发送一个int数过去,一个textview来显示接受的加1的数字
textView=(TextView) findViewById(R.id.tv);
		button=(Button) findViewById(R.id.btn);
		
		button.setOnClickListener(new View.OnClickListener()
		{
			
			@Override
			public void onClick(View arg0)
			{
				// TODO Auto-generated method stub
				
				try
				{
					Socket socket=new Socket("113.76.162.91", 10000);
					System.out.println("Build Socket");
					
					socket.getOutputStream().write(12);			
					
					System.out.println("Build Socket");
					int i=socket.getInputStream().read();
					
					
					socket.close();
					textView.setText(String.valueOf(i));
				} catch (UnknownHostException e)
				{
					// TODO Auto-generated catch block
					System.out.println("Unknow Host");
				} catch (IOException e)
				{
					// TODO Auto-generated catch block
					System.out.println("IO Wrong");
				}
			}
		});



我的代码如果不涉及Android,即是直接2个*.java能够正常运行的,我的电脑的IP地址没弄错,Android也加了联网的权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

就是不知道怎么会崩了,那个IP地址我还试过了127.0.0.1和10.0.2.2,我用的是真机调试的

============解决方案1============


你的客户端有问题,不能在OnClickListener里面更新 textView.setText(String.valueOf(i));

============解决方案2============


socket 放到子线程里去

Android的Socket编程尝试失败了,求帮助