C语言-Windows网络编程-实验 TCP网络通信器的设计:服务器和客户端 一个简易的即时聊天工具

本文介绍了使用C语言在Windows环境下进行网络编程,通过TCP协议设计了一个简单的即时聊天工具,实现了服务器和客户端的一来一回聊天功能。程序可显示发送时间,并以'bye'作为断开连接的关键词。尽管目前无法实现某端连续发送消息,但作者推测可能通过多线程技术解决此问题,由于时间紧迫,尚未深入研究。代码已分享在博客中,以备后续学习参考。
摘要由CSDN通过智能技术生成

RT。。。就是网络编程课的任务啊、
写了一个服务器与客户端的控制台程序,实现一来一回的即时聊天,可显示发送时间,以关键字bye结束连接
遗憾的是也只能一来一回,不能某端连续发送消息
在执行监听函数的时候就不能执行输入,或者这就是黑屏程序吧…
查了下貌似其实也能做到,利用多线程?不过现在没去找资料学习了
明天就是上机课,这个实验一任务截止,先把代码po到博客里。

服务器端

#include <winsock2.h>
#include <stdio.h>
#include <windows.h>
#include <time.h>
#pragma comment (lib,"Ws2_32.lib")

#define NUM 10		// 最大客户端连接数

void END(SOCKET &ListenSocket,SOCKET &ClientSocket)			// 释放相关资源
{
   
	closesocket(ListenSocket);
	closesocket(ClientSocket);
	WSACleanup();
}

void OutputTime()
{
   
	time_t T;
	struct tm *p;
	time (&T);
	p = localtime(&T);
	printf("%d/%02d/%02d %02d:%02d:%02d\n\n",1900+p->tm_year,1+p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec);
}

int main()
{
   
	system("title 服务器端");
	system("mode con cols=49 lines=30");
	
	char servername[100]={
   "Server"};			// 存储服务器名称
	char clientname[100]={
   0};
	WSADATA wsaData;
	char buf[100]={
   0};        //发送数据缓冲区
	char getbuf[100]={
   0};     //接收数据缓冲区// 创建类型为WSADATA的对象

	int iResult = WSAStartup(MAKEWORD(2,2),&wsaData);			// 初始化winsock并根据返回值判断错误信息
	if(iResult!=0)
	{
   
		printf("初始化失败。错误代码:%d\n",iResult);
		return 1;
	}

	SOCKET ListenSocket,ClientSocket;						// 定义监听和通信套接字
	ListenSocket = socket(AF_INET,SOCK_STREAM,0);			// 定义此Socket所使用的通信协议:IPV4地址族、流式套接字、不指定通信协议

	sockaddr_in addr,addr2;									// 定义套接字地址结构
	addr.sin_family = AF_INET;								// 初始化地址结构
	addr.sin_port = htons(75);
	addr.sin_addr.S_un.S_addr = INADDR_ANY;

	int addr2Len = sizeof(addr2);							// 获取套接字地址结构大小

	bind(ListenSocket, (sockaddr*)&addr, sizeof
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值