当前位置:首页 » 编程语言 » c语言聊天程序

c语言聊天程序

发布时间: 2022-06-06 01:02:18

A. 求一个用c语言写的网络聊天程序,本人菜鸟!

用c语言写聊天程序比较麻烦,要熟悉许多协议,而且还要知到那些接口的用法,我以前也想写一个,但只写到了用tcp/ip协议和端口写了个简单的通话程序,而且用c语言写界面不好,代码多,如果用其他的语言,如delphi、vb、c#之类的写就容易多了,如果你想要我这不完善的代码可以点我名字
-物联网校企联盟技术部

B. 关于用C语言开发一个简单的局域网聊天软件

linux系统都是C写的
用C当然行得通
就是个socket编程
我们原来做过一个的原理描述
当然
这个是C\S模式的
其实你可以做成
无服务端的
本系统具有局域网聊天功能。采用了C\S模式(即服务器创建套接字后,转换为监听套接字,一直在监听是否由客户端的请求。服务器接收到相应的请求后,进行相应的处理)。采用了TCP/IP(面向连接)协议。运用了SOCKET套接字实现了很方便的访问TCP/IP协议。多线程的操作。
服务器的程序(简述):
创建socket-->bind()-->listen()-->accept()-->recv/send()-->close();
客户端的程序(简述):
创建scoket-->发送connect-->recv/send()-->close();

C. C语言聊天程序 想写个基于C语言的简单聊天程序(控制台程序),C/S模式,实现客户端之间的通信

软件和服务器配置好就可以了,最好用PHP+myqsl

D. 求C语言高手,实现一个简单的TCPIP程序以实现两台计算机之间的聊天通信,

哥们你电气几班的啊。。

E. 用C语言在WIN32下编译一个简单的聊天程序,客户端向服务器发消息,服务器接到消息后会返回一个

#include<stdio.h>#include<stdlib.h>
#include<string.h>
#include<sys/types.h>
#include<errno.h>
#include<netinet/in.h>
#include<sys/socket.h>

#define SERVERPORT 5555#define BACKLOG 10
#define MAXLEN 1024

int main(){
int sockfd,client_fd;
int sin_size = 0;
int recvlen = 0;
char recvbuf[MAXLEN]={0};
struct sockaddr_in my_addr;
struct sockaddr_in cli_addr;
int iRet;

/*建立socke通信*/
if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1){
printf("Create socket error\n\n");
exit(1);
}

printf("socket success\n");

my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVERPORT);
my_addr.sin_addr.s_addr=INADDR_ANY;
memset(my_addr.sin_zero,0,8);

/*绑定socket端口*/
if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == -1){
printf("bind error\n");
close(sockfd);
exit(1);
}

printf("bind success\n");

/*监听端口*/
if(listen(sockfd,BACKLOG) == -1){
printf("listen error\n!");
close(sockfd);
exit(1);
}

printf("listren success\n");

while(1) {

sin_size = sizeof(struct sockaddr_in);

/*阻塞等待客户端发送消息*/
if((client_fd=accept(sockfd,(struct sockaddr *)&cli_addr,&sin_size)) == -1)
{
printf("accept error !");
continue;
}
printf("accept success\n");
printf("receive a connection form %s\n",inet_ntoa(cli_addr.sin_addr));

/*fork进程,子进程处理接收的信息*/
iRet=fork();
if(iRet < 0)
{
printf(" fork err, pid=[%d]", getpid());
}

/*fork返回0,为子进程*/
else if(iRet == 0)
{

printf("pid=[%d]", getpid());
printf("子进程\n");

memset(recvbuf,0,sizeof(recvbuf));

/*接收客户端发送的内容*/
if((recvlen = recv(client_fd,recvbuf,MAXLEN,0)) == -1)
{
printf("recv error\n");
close(client_fd);
exit(1);
}
printf("recvlen[%d]\n",recvlen);
printf("recvmsg:\n%s\n",recvbuf);

/*向客户端发送内容*/ if(send(client_fd,recvbuf,recvlen,0) == -1)
{
printf("send error\n");
close(client_fd);
exit(1);
}
printf("sendmsg:\n%s\n",recvbuf);

close(client_fd);
exit(0);

}

/*父进程,返回子进程pid*/
else
{
printf("pid=[%d]", getpid());
printf("父进程\n");
continue;
}

}

close(sockfd);
exit(0);
}

F. 如何用c语言编写QQ聊天程序(源代码)

1、首先,我们编写C语言的头文件#include <stdio.h>。

G. 如何用C语言编写一个简单的聊天室程序

这样:

#include <stdlib.h>

#include <stdio.h>

#include <errno.h>

#include <string.h>

#include <unistd.h>

#include <netdb.h>

#include <sys/socket.h>

#include <netinet/in.h>

#include <sys/types.h>

#include <arpa/inet.h>

#include <pthread.h>

#define MAXLINE 100;

void *threadsend(void *vargp);

void *threadrecv(void *vargp);

int main()

{

int *clientfdp;

clientfdp = (int *)malloc(sizeof(int));

*clientfdp = socket(AF_INET,SOCK_STREAM,0);

struct sockaddr_in serveraddr;

struct hostent *hp;

bzero((char *)&serveraddr,sizeof(serveraddr));

serveraddr.sin_family = AF_INET;

serveraddr.sin_port = htons(15636);

serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");

if(connect(*clientfdp,(struct sockaddr *)&serveraddr,sizeof(serveraddr)) < 0){

printf("connect error ");

exit(1);

}

pthread_t tid1,tid2;

printf("connected ");

while(1){

pthread_create(&tid1,NULL,threadsend,clientfdp);

pthread_create(&tid2,NULL,threadrecv,clientfdp);

}

return EXIT_SUCCESS;

}

void *threadsend(void * vargp)

{

//pthread_t tid2;

int connfd = *((int *)vargp);

int idata;

char temp[100];

while(1){

//printf("me: ");

fgets(temp,100,stdin);

send(connfd,temp,100,0);

printf(" client send OK ");

}

printf("client send ");

return NULL;

}

void *threadrecv(void *vargp)

{

char temp[100];

int connfd = *((int *)vargp);

while(1){

int idata = 0;

idata = recv(connfd,temp,100,0);

if(idata > 0){

printf("server : %s ",temp);

}

}

return NULL;

}

(7)c语言聊天程序扩展阅读:

注意事项

linux下编译多线程代码时,shell提示找不到 pthread_create函数,原因是 pthread.h不是linux系统默认加载的库文件,应该使用类似如下gcc命令进行编译:

gcc echoserver.c -lpthread -o echoserver

只要注意 -lpthread参数就可以了。

H. 用C语言写一个简单聊天软件!谢谢

听了楼上的我都不敢说Windows程序设计中的SDK用的也是c语言了

传的是《C语言高级编程及实例剖析》中的第六章的源码,用的是SDK编程,里面拉了控件和用了多线程

楼主如果需要界面比较复杂的聊天室程序,用MFC当然方便点,但用SDK也没有太大的问题(原理是一样的,学哪一种,另一种就会了)。后者的教程貌似很难找。可以看看MFC的,比较好的是 《Vc++ 打造局域网聊天室》(视频)

两种资料在网上都找得到...

补充:当然,如果需要传文件,图片那些,就需要研究研究网络协议了,也只是添加些功能而已

热点内容
抽奖源码带后台 发布:2025-02-08 20:33:54 浏览:225
欧博中央空调原始密码是多少 发布:2025-02-08 20:33:47 浏览:335
运动使人快乐缓解压力 发布:2025-02-08 20:27:01 浏览:98
linux命令大文件 发布:2025-02-08 20:25:06 浏览:897
C蚁群算法 发布:2025-02-08 20:21:25 浏览:513
私人搭建服务器能干嘛 发布:2025-02-08 20:21:24 浏览:596
网吧怎么通过服务器玩网络游戏 发布:2025-02-08 19:59:52 浏览:914
文档编辑加密 发布:2025-02-08 19:56:31 浏览:392
phpmysql存储过程实例 发布:2025-02-08 19:54:40 浏览:162
淘宝卖的地下城脚本 发布:2025-02-08 19:41:40 浏览:63