基于TCP的网络聊天程序

前言

服务器端:
(1)创建套接字。

(2)绑定套接字到本地的地址和端口上。

(3)设置套接字为监听状态。

(4)接受请求连接的请求。

(5)进行通信。

(6)通信完毕,释放套接字资源。

客户端:
(1)创建套接字。

(2)发出连接请求。

(3)请求连接后进行通信操作。

(4)释放套接字资源。

一、服务器端代码

#include<stdio.h>
#include<winsock.h>		/*引入winsock头文件*/

int  main()
{
   
	/*-----------------------------------------*/
	/*------------定义变量---------------------*/
	/*-----------------------------------------*/
	char Sendbuf[100];		/*发送数据的缓冲区*/
	char Receivebuf[100];	/*接受数据的缓冲区*/
	int SendLen;			/*发送数据的长度*/
	int	ReceiveLen;			/*接收数据的长度*/
	int Length;				/*表示SOCKADDR的大小*/

	SOCKET socket_server;	/*定义服务器套接字*/
	SOCKET socket_receive;  /*定义用于连接套接字*/

	SOCKADDR_IN Server_add;	/*服务器地址信息结构*/
	SOCKADDR_IN Client_add;	/*客户端地址信息结构*/

	WORD wVersionRequested;	/*字(word):unsigned short*/
	WSADATA wsaData;		/*库版本信息结构*/
	int error;				/*表示错误*/

	/*-----------------------------------------*/
	/*------------初始化套接字库---------------*/
	/*-----------------------------------------*/
	/*定义版本类型。将两个字节组合成一个字,前面是第字节,后面是高字节*/
	wVersionRequested = MAKEWORD( 2, 2 );	
	/*加载套接字库,初始化Ws2_32.dll动态链接库*/
	error = WSAStartup( wVersionRequested, &wsaData);	
	if(error!=0)
	{
   
		printf("加载套接字失败!");
		return 0;	/*程序结束*/
	}
	/*判断请求加载的版本号是否符合要求*/
	if ( LOBYTE( wsaData.wVersion ) != 2 ||
		   HIBYTE( wsaData.wVersion ) != 2 ) 
	{
   	
		WSACleanup( );	/*不符合,关闭套接字库*/
		return 0;		/*程序结束*/
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dlz0836

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值