看《TCP/TP:详解》碰到的问题,windows支持TCP事务吗? 那具体怎么使用呢,利用TCP进行文件传输时是不是已经默认使用了T/TCP还是要额外再设置过。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以的,如果用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; 谢谢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通讯程序的时候是不是也可以直接利用这个过程。 udp可以跳过,但是tcp不可以,因为tcp是面向连接的,而udp是面向无连接的.UDP C/S,客户并不与服务器建立一个连接,而仅仅给服务器发送一张包含服务器地址的数据报。相似地,服务器也不从客户端接收一个连接,只是调用函数recvfrom,等待从客户端来的数据。依照recvfrom返回的协议地址以及数据报,服务器就可以给客户送一个应答。 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的可靠性。 不过T/TCP是一种新的协议,我就是不知道建立套结字的函数: SOCKET WSASocket( int af, int type, int protocol, LPWSAPROTOCOL_INFO lpProtocolInfo, GROUP g, DWORD DEfLAGS);中,怎么加入对T/TCP协议的引用的,我查了一下套接字参数表,好像没有T/TCP的内容。 看了后面的章节,发现UNIX中T/TCP协议新引入了三个常量MSG_EOF,PRU_SEND_EOF,PR_IMPLOPCL,在利用这几个常量可以实现T/TCP,不过在WINDOWS下用VC怎么实现那,没有人知道吗? WSARecvFrom() dwBufferCount 如果是2 ,3 怎么取得数据?即WSASendTo发一个结构怎么发送? 关于滚动条闪烁 如何编写可以生成可执行程序的程序? CInternetSession::OpenURL(...) 连续运行几次后,程序就不能运行 连接ADO出现的问题????? 请问怎么关掉一个SOCKET连接? 如何捕获组合快捷键? 数据传输的问题 pcm音频静音数据的格式是怎样的?谢谢! 如何实现对话框的自由拉伸 对话框 和 SDI 有什么不同,也就是说在SDI 里哪个类相当于对话框中的CDialog? 如何用CFileDialog选择一个目录而不是文件?
的函数,不论是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;
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的可靠性。
SOCKET WSASocket(
int af,
int type,
int protocol,
LPWSAPROTOCOL_INFO lpProtocolInfo,
GROUP g,
DWORD DEfLAGS
);
中,怎么加入对T/TCP协议的引用的,我查了一下套接字参数表,好像没有T/TCP的内容。