各位高手我有几个问题希望各位指教,只有这些分全都给打上拉
1。windows socket是不是一种规范,它规定了同学的机制,通讯的函数,至于怎么实现不同系统不同
2.winsock是不是Windows对这个规范的实现
3.系统是怎么检测到有数据是一个套接字呢?其它机器发给他的事一些电信号,到了TCP层就是那些个数据报,他怎么知道是套接字,然后再用服务端程序来接受并处理他(即是说,为何他不是按netbios来解释而是安套接字呢)
4.winsock是对TCP协议的实现,netbios也是,还有其他好多网络接口,那用winsock编服务器端程序,再用netbios写客户端他们之间能不能通信

解决方案 »

  1.   

    lz是netbios控??netbios是基于tcp/ip的协议,不是tcp/ip的实现。
      

  2.   

    1 socket是一种统一的规范,请下载这个资料看看:http://download.csdn.net/source/275893
      还可以参考:http://baike.baidu.com/view/768818.htm
    2 winsock是对windows socket规范的实现。
    3 怎么知道是套接字,请参考1的资料和TCP/IP协议。系统是通过网卡收到数据后给CPU发中断信号知道数据到达的。
    4 netbios和TCP/IP是不同的协议,不能直接通信,只能通过网关转换后通信。
      

  3.   

    各位,我的说法可能有些是错误的,请别误解,我是说基于TCP/IP网络编程接口他并不是只有socket这一种接口,当传到某一个端口之后接受进程他是如何辨认这就是他所需要的数据,这些数据是符合他的这种编程接口类型的
      

  4.   


    创建socket的时候会建立一个端口和socket的对应关系。
    首先会由TCP/IP协议保证,不符合TCP/IP协议的或者IP不符合的数据不会接收。然后会检查端口,根据对应关系找到和这个端口对应的socket,然后改变socket的状态,并通知应用程序。
      

  5.   

    那如果我用的不是winsock编程接口,而是一个其他的编程接口比如说AAA,而这个接口同样实现了TCP/ip,这个程序能和winsock编写的程序通信吗,当AAA编写的程序监听端口时,他能识别来自对方socket的数据吗
      

  6.   

    如果不同接口之间可以通信,那么比如说Windows系统他是如何判断是否产生一个socket消息去通知监听进程的,是不是只要端口上有数据,就会产生一个socket消息。而不管是Windows还是unix,还是其他的操作系统,只要他实现了TCP/ip协议,不管他们接口叫A还是B,他们都会可以通信。
    套接字只是对TCP的形象描述,并实现了TCP罢了,真正的通信还是TCP/ip协议,不管用什么方法,只要将数据按照规定的格式发送到指定的主机端口就O了,是不是呀?