您的位置:首页 > 理论基础 > 计算机网络

TCP网络编程

2016-07-22 17:25 459 查看
1、TCP服务器端:

#include <winsock2.h>                     //包含头文件
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"WS2_32.lib")         //显示连接套接字库

int main()
{
WSADATA data;                         //定义WSADATA结构体变量
WORD w=MAKEWORD(2,0);                 //定义版本号码
char sever_text[]="welcome\r\n";     //发送给客户端的缓存字符
::WSAStartup(w,&data);                //初始化套接字库
SOCKET sever_socket,session_socket;   //定义绑定、监听套接字库,以及会话套接字库
sever_socket=::socket(AF_INET,SOCK_STREAM,0);     //创建TCP套接字
sockaddr_in sever_addr,session_addr;              //定义套接字地址结构
int sizeof_session_addr=sizeof(session_addr);     //会话套接字长度
sever_addr.sin_family=AF_INET;                    //初始化地址结构TCP
sever_addr.sin_port=htons(75);                    //端口号为75
sever_addr.sin_addr.S_un.S_addr=INADDR_ANY;       //任意客户端均可连接
::bind(sever_socket,(sockaddr*)&sever_addr,sizeof(sever_addr));          //绑定服务器端套接字
::listen(sever_socket,5);     //监听套接字
printf("服务器启动\r\n");     //服务器启动,等待客户端连接

while(true)       //不断等待客户端连接
{
session_socket=::accept(sever_socket,(sockaddr*)&session_addr,&sizeof_session_addr);   //客户端连接自动开启accept函数,
//获取连接方的地址
//并创建一个新的会话套接字
if(session_socket!=NULL)
{
printf("%s已经连接上!\r\n",inet_ntoa(session_addr.sin_addr));
::send(session_socket,sever_text,sizeof(sever_text),0);
}
::closesocket(sever_socket);
::closesocket(session_socket);
::WSACleanup();
if (getchar())
{
return 0;
}
else
{
::Sleep(100);
}

}

}


2、TCP客户端:

#include <WINSOCK2.H>
#include <STDIO.H>
#include <WINDOWS.H>
#pragma comment(lib,"WS2_32.lib")

int main()
{

WSADATA data;
WORD w=MAKEWORD(2,0);
::WSAStartup(w,&data);
SOCKET client_socket;
char client_text[10]={0};
client_socket=::socket(AF_INET,SOCK_STREAM,0);
sockaddr_in client_addr;
client_addr.sin_family=AF_INET;
client_addr.sin_port=htons(75);
client_addr.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
printf("客户端已经启动!\r\n");

::connect(client_socket,(sockaddr*)&client_addr,sizeof(client_addr));
::recv(client_socket,client_text,sizeof(client_text),0);

printf("%s\r\n",client_text);
::closesocket(client_socket);
::WSACleanup();

if(getchar())
{
return 0;
}
else
{
::Sleep(100);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络编程 tcp 服务器