TCPIP协议是什么

TCPIP协议是什么,第1张

TCP/IP是供已连接因特网的计算机进行通信的通信协议。

TCP/IP协议TransmissionControlProtocol/InternetProtocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。

TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。

我选的第一题,TCP通信

服务器代码:

#include "stdafx.h"

#include<Winsock2.h>

#pragma comment(lib,"WS2_32.lib")

int main(int argc, char* argv[])

{

WORD wVersionRequested

WSADATA wsaData

int err

wVersionRequested = MAKEWORD( 2, 2 )

err = WSAStartup( wVersionRequested, &wsaData )

if ( err != 0 )

{

return -1

}

if ( LOBYTE( wsaData.wVersion ) != 2 ||

      HIBYTE( wsaData.wVersion ) != 2 ) {

WSACleanup( )

return -1

}

//这之上的是必须的

SOCKET sockSer = socket(AF_INET,SOCK_STREAM,0) //TCP套接字

SOCKADDR_IN AddrSer 

AddrSer.sin_family=AF_INET

AddrSer.sin_port=htons(6666)

AddrSer.sin_addr.S_un.S_addr= inet_addr("127.0.0.1")//本机地址

int ret = bind(sockSer,(SOCKADDR *)&AddrSer,sizeof(SOCKADDR_IN))

if(ret!=0)

return -1

listen(sockSer,5)

SOCKADDR_IN AddrClient

int len=sizeof(SOCKADDR_IN)

SOCKET sockLink=accept(sockSer,(SOCKADDR *)&AddrClient,&len)

int i=0 char buf[50]

while(1)

{

memset(buf,0,50)

recv(sockLink,buf,50,0)

printf("%s\n",buf)  //将得到的字符串输出(可不要)

i=strlen(buf)   //得到字符串长度 

memset(buf,0,50)

sprintf(buf,"%d",i) //将int类型i写入char类型buf中

send(sockLink,buf,strlen(buf)+1,0) //发送长度buf

}

closesocket(sockLink) closesocket(sockSer)

return 0

}

客户端代码:

#include "stdafx.h"

#include<Winsock2.h>

#pragma comment(lib,"ws2_32.lib")

int main(int argc, char* argv[])

{

WORD wVersionRequested

WSADATA wsaData

int err

wVersionRequested = MAKEWORD( 2, 2 )

err = WSAStartup( wVersionRequested, &wsaData )

if ( err != 0 )

{

return -1

}

if ( LOBYTE( wsaData.wVersion ) != 2 ||

      HIBYTE( wsaData.wVersion ) != 2 ) {

WSACleanup( )

return -1

}

SOCKET sockClient= socket(AF_INET,SOCK_STREAM,0)

SOCKADDR_IN addr_ser

addr_ser.sin_family=AF_INET

addr_ser.sin_port=htons(6666)

addr_ser.sin_addr.S_un.S_addr=inet_addr("127.0.0.1")

int ret = connect(sockClient,(SOCKADDR*)&addr_ser,sizeof(addr_ser))

if(ret!=0)

return -1

char buf[50]

int i=0

while(1)

{

memset(buf,0,50)

gets(buf)   //输入字符串

if(strcmp(buf,"再见")==0)

{

 break

}

else

{

 send(sockClient,buf,strlen(buf)+1,0)

 memset(buf,0,50)

 recv(sockClient,buf,50,0)

 printf("%s\n",buf)

}

}

closesocket(sockClient)

return 0}

客户端运行结果:

运行时要先运行服务器,在运行客户端。有为题追问吧~~


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/229716.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存