Android手机做Server,PC做Client,现在程序在模拟器上调试没有问题,然后在真机上Server没有反应,另外可能要用到adb forward tcp:localport tcp:deviceport,但是也还是不能成功.
请大侠们帮我想想办法:
PC(Server)c++:
WORD wVersion;
WSADATA wsdata;
int err; wVersion = MAKEWORD(1,1);
err = WSAStartup(wVersion,&wsdata);
if (err != 0)
{
MessageBox(NULL,L"Load Socket error!",L"",NULL);
return;
}
if (LOBYTE (wsdata.wVersion )!= 1 || HIBYTE(wsdata.wVersion) != 1)
{
MessageBox(NULL,L"Load Socket version error!",L"",NULL);
WSACleanup();
return;
} SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0);
if (sockSrv == INVALID_SOCKET )
{
MessageBox(NULL,L"Create socket object error!",NULL,NULL);
} SOCKADDR_IN addrsrv;
addrsrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrsrv.sin_family = AF_INET;
addrsrv.sin_port = htons(8000); bind(sockSrv,(SOCKADDR*)&addrsrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrclient;
int len = sizeof(SOCKADDR);
while (1)
{
SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrclient,&len);
#if 1
MessageBox(NULL,L"Server4000 received a message!",NULL,NULL);
#endif
char szdata[100] = {0};
char newszdata[200] = {0};
recv(sockConn,szdata,100,0);
sprintf(newszdata,"the server 4000 received data is:%s",szdata);
#if 1
MessageBoxA(NULL,newszdata,NULL,NULL);
#endif
// send(sockConn,"how are you!",strlen("how are you"),0);
//after use the socket,must release the socket object
closesocket(sockConn);
}smartphone:client(java)
String message = mEditText.getText().toString() + "\r\n";
Log.v("TAG", message);
Socket socket = null;
try
{
socket = new Socket("10.129.85.93",8000);
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
out.close();
socket.close();
}
catch (Exception e)
{
Log.e(DEBUG_TAG, e.toString());
}
}
请大侠们帮我想想办法:
PC(Server)c++:
WORD wVersion;
WSADATA wsdata;
int err; wVersion = MAKEWORD(1,1);
err = WSAStartup(wVersion,&wsdata);
if (err != 0)
{
MessageBox(NULL,L"Load Socket error!",L"",NULL);
return;
}
if (LOBYTE (wsdata.wVersion )!= 1 || HIBYTE(wsdata.wVersion) != 1)
{
MessageBox(NULL,L"Load Socket version error!",L"",NULL);
WSACleanup();
return;
} SOCKET sockSrv = socket(AF_INET,SOCK_STREAM,0);
if (sockSrv == INVALID_SOCKET )
{
MessageBox(NULL,L"Create socket object error!",NULL,NULL);
} SOCKADDR_IN addrsrv;
addrsrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
addrsrv.sin_family = AF_INET;
addrsrv.sin_port = htons(8000); bind(sockSrv,(SOCKADDR*)&addrsrv,sizeof(SOCKADDR));
listen(sockSrv,5);
SOCKADDR_IN addrclient;
int len = sizeof(SOCKADDR);
while (1)
{
SOCKET sockConn = accept(sockSrv,(SOCKADDR*)&addrclient,&len);
#if 1
MessageBox(NULL,L"Server4000 received a message!",NULL,NULL);
#endif
char szdata[100] = {0};
char newszdata[200] = {0};
recv(sockConn,szdata,100,0);
sprintf(newszdata,"the server 4000 received data is:%s",szdata);
#if 1
MessageBoxA(NULL,newszdata,NULL,NULL);
#endif
// send(sockConn,"how are you!",strlen("how are you"),0);
//after use the socket,must release the socket object
closesocket(sockConn);
}smartphone:client(java)
String message = mEditText.getText().toString() + "\r\n";
Log.v("TAG", message);
Socket socket = null;
try
{
socket = new Socket("10.129.85.93",8000);
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);
out.println(message);
out.close();
socket.close();
}
catch (Exception e)
{
Log.e(DEBUG_TAG, e.toString());
}
}
解决方案 »
- 怎么样把开发好的ERP软件移植到手机上应用
- 关于Android双卡双待的拨号的问题
- 求助高手,Android中通过id值引用View的问题。
- Android源代码所在的目录在什么地方
- 如何像uc那样设置默认浏览器。
- 请教各位大牛,请问如何调节机器的频率?
- android手机开启gprs数据连接的时候还能用wifi传文件么?
- sql创建一个数据库2张表,运行崩溃no such table
- Android 7.0 访问不能加载 https 图片(只是部分的https) 为什么
- android系统有没接口可以采集到屏幕的点亮时长?
- alertdialog中 获取上一层(parent)中的textview
- 请问android sdk版本和android版本有什么关系?
楼上大哥能说得详细一点吗?还是说我的方法不对?
因为android本身是server-client的模式,核心部分是server,client只能从server取东西。
另外我想你的工具想要sych,就需要获得足够的权限去运行,如果是client可能不方便。建议你还是将手机作为server,而PC作为client。保护手机的数据安全是工具的首要目的。
但是真机上不行。另外adb forward tcp:xxx tcp:xxx 你是这样用adb forward的吗?
另外在client端你是指定的PC的IP ADDRESS吗?
举个例子:adb forward tcp:1234 tcp:1234
pc侧ip:127.0.0.1pc侧直接向127.0.0.1:1234发送数据,手极端监听1234端口即可
可以给我你的QQ或者MSN,thank you for replaying~
如果你给分的话我可考虑一下把代码给你。呵呵~~~哈哈。
明天上班我在来。