那具体怎么使用呢,利用TCP进行文件传输时是不是已经默认使用了T/TCP还是要额外再设置过。

解决方案 »

  1.   

    可以的,如果用mfc的话有Csocket类,API里面有send(),listen(),accept,...
    的函数,不论是tcp还是udp都可以实现.主要就是socket编程.
      (1)BOOL Create (UINT nSocketPort=0,int socketType=SOCK_STREAM,long lEvent=FD_READ|FD_WRITE|FD_OOD|FD_ACCEPT|FD_CONNECT|FD_CLOSE|,LPCTSTR|lpszSocket Address=NULL
        该函数用来建立Socket。
      (2)BOOL Bind(UINT nSocketPort,LPCTSTR lpszSocketAddess=NULL)
        该函数的作用是将Socket端口与网络地址连接起来。
      (3)BOOL Listen(int nConnectionBacklog=5)
        该函数的作用是等待Socket请求。
        (4)Virtual BOOL Accept(CAsyncSocket & rConnected Socket,Socket,SOCKADDR*  lpSock Addr=NULL,int * lpSock AddrLen=NULL)
        该函数的作用是取得队列上第一个连接请求并建立一个具有与Socket相同特性的套接字。
        (5)BOOL Connect (LPCTSTR lpszHostAddress,UINT nHostPort)
        该函数的作用是提出请求。其中,lpszHostAddress和nHostPort为接受请求进
    程的网络地址和Socket端口号。
        (6)virtual void Close()该函数的作用是关闭Socket。
        使用以上类及成员函数,按照以下步骤,就可以设计出合适的通信程序:
        Server:Construct→Creat→Bind→Listen→Accept→Send→Close;     
      

  2.   

    谢谢arlgil(arlgil) ,SOCKET进行通讯的过程我明白,不过你写的这个过程是普通的TCP通讯的过程,根据《TCP/TP:详解》,T/TCP其实是跳过了TCP的三次握手的过程,他不用调用CONNECT,而是直接进行SENDTO,他比普通的TCP不仅少了少了一个RTT,而且还减少了网络上传输的分组数,他的连接过程是:客户端:create->sendto  (省略了Connect过程)服务器:create->bind->listen->accept其中客户端的sendto要设置MSG_EOF标志。我就是不明白利用VC编写WINSOCK通讯程序的时候是不是也可以直接利用这个过程。
      

  3.   

    udp可以跳过,但是tcp不可以,因为tcp是面向连接的,而udp是面向无连接的.UDP C/S,客户并不与服务器建立一个连接,而仅仅给服务器发送一张包含服务器地址的数据报。相似地,服务器也不从客户端接收一个连接,只是调用函数recvfrom,等待从客户端来的数据。依照recvfrom返回的协议地址以及数据报,服务器就可以给客户送一个应答。
      

  4.   

    arlgil(arlgil):你可能搞错了
    tcp进行连接时:遵循下列顺序
    1、客户端发出SYN信号
    2、服务器端也发出SYN,对客户端的SYN进行确认
    3、客户端发出SYN信号,对服务器端的SYN进行确认(此时已经建立了连接)
    4、客户端发送数据
    5、客户端发送FIN,表示发送结束
    6、服务器端对客户端的数据和FIN进行确认而利用T/TCP进行连接时:客户端把1,3,4,5过程结合到一起,而服务器也把2,6结合到一起,所以T/TCP比TCP效果要好多了,他同时具备了UDP的高效率和TCP的可靠性。
      

  5.   

    不过T/TCP是一种新的协议,我就是不知道建立套结字的函数:
     SOCKET WSASocket(
           int af,
           int type,
           int protocol,
           LPWSAPROTOCOL_INFO lpProtocolInfo,
           GROUP g,
           DWORD DEfLAGS
    );
    中,怎么加入对T/TCP协议的引用的,我查了一下套接字参数表,好像没有T/TCP的内容。
      

  6.   

    看了后面的章节,发现UNIX中T/TCP协议新引入了三个常量MSG_EOF,PRU_SEND_EOF,PR_IMPLOPCL,在利用这几个常量可以实现T/TCP,不过在WINDOWS下用VC怎么实现那,没有人知道吗?