📄 tcp_server.cpp
字号:
#include <winsock.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
SOCKET sock1,sock2;
int sin_size ;
struct sockaddr_in my_addr,their_addr;
char name[20];
//初始化函数Tcp
void Init()
{
printf("\n\n\n Server: TCP\n\n\n");
//建立套接字
const WORD wMinver=0x0101;
WSADATA wsadata;
if(0!=::WSAStartup(wMinver,&wsadata))
perror("Start socket error!");
if(INVALID_SOCKET==(sock1=::socket(AF_INET,SOCK_STREAM,0)))
perror("Create socket error!");
my_addr.sin_family=AF_INET;
my_addr.sin_addr.S_un.S_addr=INADDR_ANY;
my_addr.sin_port=htons(1000);
if(SOCKET_ERROR==::bind(sock1,(struct sockaddr*)&my_addr,sizeof(my_addr)))
{
perror("Binding stream socket");
exit(1);
}
//开始侦听
if(SOCKET_ERROR==::listen(sock1,5))
{
perror("Listening stream socket");
exit(1);
}
//接受连接
printf("Ready to serve client. Please connect...");
sin_size = sizeof(struct sockaddr_in);
if((sock2=accept(sock1,(struct sockaddr *)&their_addr,&sin_size))==-1)
{
perror("Accepting stream socket");
exit(1);
}
}
//选择菜单
int menu()
{
char s[1];
int c;
printf("\n\n\n Server: Menu\n\n\n");
printf(" *********************************\n\n");
printf(" * 1.Send Message *\n");
printf(" * 2.Receive Message *\n");
printf(" * 3.Exit *\n\n");
printf(" *********************************\n");
do
{
printf("\n Enter your choice:");
gets(s);
if(s[0]=='\0'){
gets(s);
}
c=atoi(s);
}while(c<0||c>3);
return c;
}
//消息发送函数
void Send()
{
char Msg[1024];
printf("\nPlease Input the message:");
gets(Msg);
if(SOCKET_ERROR==::send(sock2,Msg,sizeof(Msg),0))
{
perror("Sending stream socket");
exit(1);
}
}
//消息接收函数
void Receive()
{
int len;
char buf[1024];
for(int i=0;i<1024;i++){
buf[i]='\0';
}
printf("Receiving...\n");
if((len=recv(sock2,buf,1024,0))==-1)
{
perror("Receving data error");
exit(1);
}
printf("The Received Message: ");
buf[len]='\0';
printf("%s",buf);
}
//主函数
void main()
{
Init();
for(;;)
{
switch(menu())
{
case 1:
Send();
break;
case 2:
Receive();
break;
case 3:
exit(0);
}
}
::closesocket(sock2);
::closesocket(sock1);
::WSACleanup();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -