❶ 由路由器连接的电脑如何socket实现网络通信

关键在路由器上!如果想让你的程序从既能从内部局域网访问,也能外部网络访问,那你必须:
1)在路由器增加一个路由项,这个路由项由将{外网IP:端口}映射到{你计算机内网IP:端口}
2)你的计算机上仍然使用{内网IP:端口}

❷ C/C++socket编程如何访问不同一个局域网中的某一个主机

举例:A1用socket连接来B1.

B家的路由器首先进行源这样的设置.比如说B1侦听的是123456端口.那么就在B家路由器上映射123456端口至B1的内网IP192.168.0.1,至于路由器映射的时候可能要选择TCP和UDP,那么由你侦听对应端口的协议决定.(既然要链接,那就是TCP了,如果是直发的话.UDP了),A家的路由器不做任何设置.这时,A1用socket连接B1的时候填写IP的时候填写B家的公网IP220.189.195.212即可.

图上面的虚拟服务器一般可在路由器设置内的转发规则找到.

往楼主早日解决问题.呵呵

❸ socket,tcp,http三者之间的区别和原理

最大区别socket是网络层,http是应用成。。
socket是一个程序组件,它支持TCP,UDP等网络通讯协议,也就是通过socket这个东西你可以和任何互联网或局域网上的计算机通讯。。。TCP,UDP是一个网络层协议,网络层协议不管你发的内容是啥,他只负责把你想法的东西发到对面,发的是啥,他完全不管,因为他不是应用层。。。。
http是应用层协议,在socket的TCP层之上,他是管你发送的内容是什么的,比如你发的是啥,图片还是文字还是视频数据流,发成功了没有,用什么语言发,都做了详细的定义,这样可以保证写软件的人只要按照约定处理数据,就能得到想要的结果。。。
通讯的目的就是应用,所以应用是顶层,否则你发的是坨屎,还是别的什么,无从知道,因为数据都是二进制数据流,必须描述清楚,约定好。。。

❹ 两个局域网终端通过socket编程连接 如何实现

编程语言不同语法不同,抛开语法谈思路。使用套接字连接有同步和异步两种方式,强烈建议使用异步通讯,思路是这样的:
1,服务端编程:使用异步套接字函数(有些古老语言不提供这样的函数,就得使用Windows API提供的函数了)监听一个端口,一旦收到数据马上提交给处理函数(自己编写的)在另一的线程中处理数据,并且本线程仍旧继续(自动的)监听该端口。工作就是这样周而复始的。
2,客户端编程:很简单,编写使用函数(还是,古老语言可能不提供该函数,还得使用Windows API)发送给服务端IP和端口的数据程序就行了。
懂得这个思路你将来就能够渐渐编写出网络应用程序了