如何通过USB实现socket

cc_net 2012-02-08 02:48:31
我在做WP7上一个App和PC通信。使用Socket TCP通信。

以前对Socket使用都是基于LAN的,但是我发现手机通过USB去连接PC上的Socket Server是不成功的。

所以我想对这一块有个了解:

1 TCP/IP协议是基于LAN,USB,BT不同的物理层来传输是不是需要不同的驱动? 我程序通过USB进行socket通信不成功是不是因为这个?还是其他原因?

2 我不懂USB协议,想问问TCP/IP和USB协议是怎样一个关系。是不是TCP数据包要最后被打包成USB协议的格式进行传送?如果我不是用TCP,是不是APP可以直接对USB编程,来发送数据?

3 如果一个device需要通过BT,USB,WIFI等不同方式和PC进行socket通信,需要满足那些条件?

以上不是我的方向,所以问题可能问的就不对,我想了解下这方面的东西。 因为之前没想过用usb或其他方式来进行Socket。
...全文
1174 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cc_net 2012-02-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 huangdi19880612 的回复:]
楼主,不知道你的程序是什么结果
我做过局域网通信,自己的两个程序软件进行通信,在USB中是可行的,但是一个在主机上,另一个在另外的主机上运行,不知道你说的是什么情况.
但是USB协议和TCP/IP协议具体的物理层是不同的.你要实现蓝牙,usb和wifi的通信,的要各自实现驱动的.
一般都有相应的外设硬件模块.然后在个对应的模块开发驱动.而且usb比较难的.
[/Quote]

其实我是在使用WP7进行socket通信时碰到的问题,发现WP7用USB和PC链接后,不能通过USB进行socket通信。但是android在使用adb,WM使用acticvesync之后,是可以通过USB来和PC进行socket通信的。

我就想了解一下,如果WP7也要能通过USB来和PC进行USB通信,需要做什么工作?是不是需要虚拟一块网卡出来,然后编写相应的驱动。
wensheng_zh2007 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 brantyou 的回复:]

引用 2 楼 cc_net 的回复:

引用 1 楼 brantyou 的回复:
进行socket通讯,起码要有个网络环境对接,可以是内网,也可以是外网。
不用socket通讯方式,可以使用app通过USB进行数据通讯


但是在android上,他有一个adb工具,使用adb foward映射端口以后就可以和手机进行socket通信。
但是好像是App和adb server直接……
[/Quote]

将手机通过USB线,连接到手机上进行上网,应该就是通过USB的这个传输中介吧
李氏康荣 2012-02-09
  • 打赏
  • 举报
回复
楼主,不知道你的程序是什么结果
我做过局域网通信,自己的两个程序软件进行通信,在USB中是可行的,但是一个在主机上,另一个在另外的主机上运行,不知道你说的是什么情况.
但是USB协议和TCP/IP协议具体的物理层是不同的.你要实现蓝牙,usb和wifi的通信,的要各自实现驱动的.
一般都有相应的外设硬件模块.然后在个对应的模块开发驱动.而且usb比较难的.
李氏康荣 2012-02-09
  • 打赏
  • 举报
回复
楼主,不知道你的程序是什么结果
我做过局域网通信,自己的两个程序软件进行通信,在USB中是可行的,但是一个在主机上,另一个在另外的主机上运行,不知道你说的是什么情况.
但是USB协议和TCP/IP协议具体的物理层是不同的.你要实现蓝牙,usb和wifi的通信,的要各自实现驱动的.
一般都有相应的外设硬件模块.然后在个对应的模块开发驱动.而且usb比较难的.
一介布衣萧萧 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cc_net 的回复:]

引用 1 楼 brantyou 的回复:
进行socket通讯,起码要有个网络环境对接,可以是内网,也可以是外网。
不用socket通讯方式,可以使用app通过USB进行数据通讯


但是在android上,他有一个adb工具,使用adb foward映射端口以后就可以和手机进行socket通信。
但是好像是App和adb server直接是socket,但是adb server和手……
[/Quote]

以俺的理解,android的adb工具它其实就是把手机的网络通过USB映射到了PC上,这样才实现了这个socket的通讯。其中USB只起到了一个传输媒介的作用。至于怎么映射,这个就不大清楚了。按照这个道理应该是可以实现这样的功能的。
cc_net 2012-02-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 brantyou 的回复:]
进行socket通讯,起码要有个网络环境对接,可以是内网,也可以是外网。
不用socket通讯方式,可以使用app通过USB进行数据通讯
[/Quote]

但是在android上,他有一个adb工具,使用adb foward映射端口以后就可以和手机进行socket通信。
但是好像是App和adb server直接是socket,但是adb server和手机的adbd之间是通过USB吗? 我不清楚他这个是怎么实现的。

是不是USB需要模拟一个网络环境?
一介布衣萧萧 2012-02-09
  • 打赏
  • 举报
回复
进行socket通讯,起码要有个网络环境对接,可以是内网,也可以是外网。
不用socket通讯方式,可以使用app通过USB进行数据通讯

19,500

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧