当前位置:编程学习 > JAVA >>

请用最简洁的话回答这个问题:TCP和SOCKET什么关系

今天上班时聊到的,大家怎么看,
简单、直观、准确。 --------------------编程问答-------------------- 应用程序进程和tcp/ip的通信是用socket来实现的。

不知道对不对哦。 --------------------编程问答-------------------- socket是TCP/IP协议的API --------------------编程问答-------------------- TCP是网络协议
socket是实现协议的一种技术。

呵呵,讨论题,可以按自己的理解说话吧  :P --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- tcp是电,socket是插头和插座。 --------------------编程问答--------------------
引用 5 楼 weihthchk 的回复:
tcp是电,socket是插头和插座。

形象  --------------------编程问答--------------------
引用 5 楼 weihthchk 的回复:
tcp是电,socket是插头和插座。

tcp是有线电视线,socket是电视和广电局。 --------------------编程问答--------------------
引用 3 楼 crazylaa 的回复:
TCP是网络协议
 socket是实现协议的一种技术。

顶! --------------------编程问答--------------------
引用 5 楼 weihthchk 的回复:
tcp是电,socket是插头和插座。

--------------------编程问答-------------------- socket是手机,TCP是移动,呵呵 --------------------编程问答-------------------- socket是手机,tcp是GSM,udp是CDMA。 --------------------编程问答--------------------
引用 11 楼 magicld 的回复:
socket是手机,tcp是GSM,udp是CDMA。


这个是怎么说的? --------------------编程问答--------------------
引用 11 楼 magicld 的回复:
socket是手机,tcp是GSM,udp是CDMA。

哈哈,你还看不起CDMQA哦 --------------------编程问答-------------------- 两个在不同层 --------------------编程问答--------------------
引用 5 楼 weihthchk 的回复:
tcp是电,socket是插头和插座。


顶一下 --------------------编程问答-------------------- TCP 是网络层,socket 是应用层调用网络层的接口 --------------------编程问答-------------------- 本学期正在学习 --------------------编程问答-------------------- socket是对TCP/IP协议的实现 --------------------编程问答-------------------- 网络的东西不太懂 --------------------编程问答-------------------- socket是实现网络通信的工具
tcp是支持网络通信的协议
直观上讲没有什么联系 各干其事 --------------------编程问答--------------------
引用 20 楼 dajiadebeibei9 的回复:
socket是实现网络通信的工具
tcp是支持网络通信的协议
直观上讲没有什么联系 各干其事


没有联系? --------------------编程问答--------------------
引用 2 楼 godismydaughter 的回复:
socket是TCP/IP协议的API


同意 --------------------编程问答-------------------- 要不就说,
socket是servlet
tcp/ip是http。 --------------------编程问答-------------------- TCP是数据的介质,Socket是TCP的介质.

查了一下RFC文档,Socket是RFC147,更新时间是1971年.TCP是RFC793,更新时间是1981年.Socket在ARPA网就出现了.

应该说TCP是socket上的一种通信协议. --------------------编程问答--------------------
引用 24 楼 eastoneking 的回复:
TCP是数据的介质,Socket是TCP的介质.

查了一下RFC文档,Socket是RFC147,更新时间是1971年.TCP是RFC793,更新时间是1981年.Socket在ARPA网就出现了.

应该说TCP是socket上的一种通信协议.


这位同学的研究精神很强大,
谢谢你的回答。

也就是说,根据规范,Socket比TCP出现的早,那么,严格来讲,我们现在用的Socket,是不是应该成为:
TCP Socket。 --------------------编程问答-------------------- 再见 --------------------编程问答--------------------
引用 3 楼 crazylaa 的回复:
TCP是网络协议
socket是实现协议的一种技术。

呵呵,讨论题,可以按自己的理解说话吧  :P

up --------------------编程问答-------------------- socket的实现是基于TCP协议。TCP就相当于一个接口,而socket相当于实现该接口的方法 --------------------编程问答-------------------- socket称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。但是这个定义是因为开发WIN32编程才有的。或是别的系统编程。

X.25时代就有套接字概念,系统程序间通信都是套接字。

但是1983年TCP成为继NCP必须遵守的规则之后。网络出现大更新。

目前一说socket就是工作在应用层和网络层之间,TCP是工作在传输层的协议。

但是有一些系统简单高效,直接在数据链路层转发套接字,又叫原始套接字。跟所谓的TCP毫无关系。


--------------------编程问答-------------------- jf --------------------编程问答-------------------- 看看人家说的,我在一楼很惭愧~~ --------------------编程问答--------------------
引用 31 楼 zb309698998 的回复:
看看人家说的,我在一楼很惭愧~~

我没话说更惭愧。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- 好好学习~别再惭愧了~~ --------------------编程问答-------------------- socket只是通信上一种通信方式, TCP是一种通信协议,我们所开发的程序大都都是基于TCP协议的socket通信,当然也可以使用其他协议来通过socket通信,比如 UDP, 更强悍的话,你可以自定义协议来通过socket进行网络通信。 --------------------编程问答-------------------- 本人观点如下:
两个不是相同类型的东西。
socket是软件。
TCP是协议。

软件是拿来运行的,
协议是拿来遵守的,

两者的关系如下:SOCKET是一个产品制造商,创建的产品中有的可以符合TCP的标准,也有的可以符合UDP的标准。 --------------------编程问答-------------------- mark --------------------编程问答--------------------
引用 36 楼 333sunshine 的回复:
本人观点如下:
 两个不是相同类型的东西。
 socket是软件。
 TCP是协议。

 软件是拿来运行的,
 协议是拿来遵守的,

 两者的关系如下:SOCKET是一个产品制造商,创建的产品中有的可以符合TCP的标准,也有的可以符合UDP的标准。
UP --------------------编程问答-------------------- Socket接口是TCP/IP网络的API,Socket接口定义了许多函数或例程,程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程,必须理解Socket接口。 
  Socket接口设计者最先是将接口放在Unix操作系统里面的。如果了解Unix系统的输入和输出的话,就很容易了解Socket了。网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket(SOCK_STREAM)和数据报式Socket(SOCK_DGRAM)。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 

转自以下链接
http://hi.baidu.com/xiao1dian/blog/item/cd10744a4da7ba2009f7ef5e.html --------------------编程问答-------------------- socket(套接字)是一种抽象层,应用程序通过它来发送和接收数据,就像应用程序打开一个文件句柄,将数据读写到稳定的存储器上一样。使用socket可以将应用程序添加到网络中,并与处于同一个网络中的其他应用程序进行通信。一台计算机上的应用程序向socket写入的信息能够被另一台计算机上的另一个应用程序读取,反之依然。
不同的socket有不同的协议族。而tcp就是一种。

描述一个主机。应用程序。套接字抽象层。协议。端口号之间的逻辑关第。

出自<<java tcp/ip socket编程>> --------------------编程问答-------------------- socket是OSI网络协议栈TCP/IP协议,提供给开发者的应用API:

socket一般工作在OSI的第四层,基于TCP/UDP
更底层一点raw socket可以在第三层工作 IP
更加底层的socket可以基于第二层(MAC)的协议上面工作

所以想到socket不要只是跟TCP扯上什么关系,很显然Java实现的socket只能基于第四层协议
也许这个就是在JVM之上的socket和tcp的关系吧
--------------------编程问答-------------------- TCP 是网络层,socket 是应用层调用网络层的接口 --------------------编程问答-------------------- 上层应用和底层协议 --------------------编程问答-------------------- 就像 c和java的关系 ,些java代码的时候  跟c没关系

但是没有c   就不会有java的出现 --------------------编程问答-------------------- 谢谢各位,终于对socket有一定的了解了,想请问下各位想做个利用socket来接收GSM/GPRS网络中的数据应该用什么语言和环境啊,本人不是学计算机的所以现在一头的雾水 --------------------编程问答-------------------- socket是传送带,tcp是货物的规格 --------------------编程问答--------------------
引用 21 楼 jinxfei 的回复:
引用 20 楼 dajiadebeibei9 的回复:
socket是实现网络通信的工具
tcp是支持网络通信的协议
直观上讲没有什么联系 各干其事


没有联系?

确实没有关系!
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,