我在MainActivity里面开启了一个线程监听连接,客户端使用 PC机,通过WIFI相连1、希望这个线程accept连接后,将这个socket传递给一个新的Activity,在新的Activity里面再开一个线程接收数据,但是貌似Bundle支持的数据类型里面没有socket啊,刚接触ANDROID开发,基础不牢
2、在线程里面://A模块连接处理线程
private void startServerA() throws IOException
{
ServerSocketA.Listen(9220);
ModuleAConnected=1;
while(ServerSocketA.socket.isConnected()==true)
{
;
}
ModuleAConnected=0;
}
但是如果在这个函数里面加上对界面操作的语句,例如
TextView.setText("msg");程序立马挂掉,这是为什么?
3、用VB的Winsock控件 winsock.SendData "Hello" 如何在Android上解析?书上的例子解析不出来。
2、在线程里面://A模块连接处理线程
private void startServerA() throws IOException
{
ServerSocketA.Listen(9220);
ModuleAConnected=1;
while(ServerSocketA.socket.isConnected()==true)
{
;
}
ModuleAConnected=0;
}
但是如果在这个函数里面加上对界面操作的语句,例如
TextView.setText("msg");程序立马挂掉,这是为什么?
3、用VB的Winsock控件 winsock.SendData "Hello" 如何在Android上解析?书上的例子解析不出来。
解决方案 »
- 新手弱弱问下~
- android消息推送问题,急求大侠赐教!!!
- 关闭socket异常
- 我想在用代码直接在桌面上添加widget,比如我点击了我activity里的一个按钮,程序就直接将widget加到桌面上了,求指导!
- imageview问题
- Android ConnectivityManager.CONNECTIVITY_ACTION延时
- 如何直接访问腾讯信鸽推送的服务器
- fragment中加入高德地图,viewpager切换时地图状态复原,并且多次切换会引起程序退出
- 求:Android WebView播放视频全屏的全版本适用方法
- Eclipse右键没有断点调试toggle breakpoint
- android 1个问题 求帮忙忙!
- listview的焦点怎样人性化的分配
2。线程不能直接操作UI
3。正常的java socket接收就行
private void startServerA() throws IOException, InterruptedException
{
//ServerSocketA.Listen(9220);
ServerSocket server=new ServerSocket(9220);
Socket socket=server.accept();
//连接成功继续执行
ModuleAConnected=1;
Message message = new Message();
message.what = MainFrame.CONNECT_A;
MainFrame.this.myHandler.sendMessage(message);
while(socket.isClosed()==false)
{
//ServerSocketA.GetData(ReceivebufferA);
InputStream in=socket.getInputStream();
//InputStream in=ServerSocketA.socket.getInputStream();
ReceivebufferA=new byte[in.available()];
in.read(ReceivebufferA);
Message messageData= new Message();
messageData.what = MainFrame.GETDATA_A;
MainFrame.this.myHandler.sendMessage(messageData);
Thread.sleep(100);
}
ModuleAConnected=0;
Message messageClose = new Message();
messageClose.what = MainFrame.CLOSED_A;
MainFrame.this.myHandler.sendMessage(messageClose);
}
Hander处理:Handler myHandler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
case MainFrame.CONNECT_A:
{
ButtonConnectA.setText("连接成功");
break;
}
case MainFrame.CLOSED_A:
{
ButtonConnectA.setText("等待连接中");
ButtonConnectA.setEnabled(true);
break;
}
case MainFrame.GETDATA_A:
{
String msg1 =new String(ReceivebufferA);
Toast tA=Toast.makeText(getApplicationContext(),msg1, Time);
tA.show();
ButtonConnectA.setText(msg1);
break;
}
}
super.handleMessage(msg);
}
}; 在PC机上使用VB的winsock控件
1、winsock.SendData "hello" 为什么接收不到?
2、怎么才能判断连接连接是否断开?
3、为什么accept()应该只是执行了一次,而
winsock.connect方法可以在断开后还能再连接成功?
2.人为断开把socket也释放吧,如果要检测网络是否连接正常,加上心跳
3.关键你socket有没有close,如果没有close,那么连接通道还是存在。
while(socket.isClosed()==false)
{
//ServerSocketA.GetData(ReceivebufferA);
InputStream in=socket.getInputStream();
//InputStream in=ServerSocketA.socket.getInputStream();
ReceivebufferA=new byte[in.available()];
in.read(ReceivebufferA);
Message messageData= new Message();
messageData.what = MainFrame.GETDATA_A;
MainFrame.this.myHandler.sendMessage(messageData);
Thread.sleep(100);这里接受数据会阻塞吗?为什么没有接收到数据还是一遍一遍的执行?
是不是接收到数据才会继续执行?