⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 socket.cpp

📁 实现arq滑动窗口协议客户端源程序
💻 CPP
字号:
# include "Winsock.h"
# include "windows.h"
# include "stdio.h"
# pragma comment (lib,"wsock32.lib")
# define RECV_PORT 7777
# define SEND_PORT 7777
#include<iostream.h>

SOCKET sock;
sockaddr_in ServerAddr;
  

DWORD StartSock()
{
	WSADATA WSAData;
	if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0)
	{ 
		printf("sock init fail ! \n");

		return(-1);
	}
    ServerAddr.sin_family=AF_INET;
	ServerAddr.sin_addr.s_addr=inet_addr("202.195.168.32");
    ServerAddr.sin_port=htons(RECV_PORT);
	return(1);
}
    

DWORD CreateSocket()
{
	sock=socket(AF_INET,SOCK_STREAM,0);
	if(sock==SOCKET_ERROR)
	{
		printf("sock create fail ! \n");
		WSACleanup();
		return(-1);
	}
	return(1);
}


DWORD CallServer()
{
	CreateSocket();
	if(connect(sock,(struct sockaddr*)&ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR)
	{ 
		printf("Connect fail\n");
		closesocket(sock);
		return(-1);
	}
	return(1);
}


DWORD  TCPSend(char data[])
{int length;
length=send(sock,data,strlen(data),0);
    if(length<=0)
	{
     	printf("send data error!\n");
    	closesocket(sock);
    	WSACleanup();
	    return(-1);
	}
	return(1);
}
int main()
{char buff[1000];
char info[1000];

 StartSock();
 while(CallServer()==-1);
 printf("connect ok!\n");
 printf("press any key to send !");
 getchar();
 for(;;)
 { 
	 printf("input the message to send :");
	 memset(buff,0,1000);
	 scanf("%s",info);
	 
	 
	 sprintf(buff,"client:%s\n",info);
		 printf(buff);
		 TCPSend(buff);
		 Sleep(100);
 }
 return(0);
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -