当前位置: 技术问答>linux和unix
进来帮帮忙....帮我改程序OK?..关于聊天室功能.里面有源代码.....
来源: 互联网 发布时间:2015-06-19
本文导语: 大家能帮帮我调试并实现这个功能这个聊天室的功能吗????我是刚开始学的,在redhat 9.0 下调试没有错误,但却总是实现不了聊天室的功能呀.......教教我,好吗?大家帮我修改一下,调试好能运行了...把修改后的源程序发给...
大家能帮帮我调试并实现这个功能这个聊天室的功能吗????我是刚开始学的,在redhat 9.0 下调试没有错误,但却总是实现不了聊天室的功能呀.......教教我,好吗?大家帮我修改一下,调试好能运行了...把修改后的源程序发给我,行吗??谢谢了.
Email: sen6888@163.com
QQ : 49213575
原理:
客户端程序首先与服务端建立连接,然后交本端的 id 发送到服务端..服务端收到这个消息,就会发送广播,让其它所有已经在聊天中的客户端知道有新的客户加入聊天.退出聊天时客户端不主动关闭连接,而是请求服务端关闭连接.收到服务端发送的FIN信号后(即read()返回0),客户端才关闭所有句柄退出.需要说明的一点,是发送的数据的格式.客户端向服务端发送的每一条信息,其第一个字节代表的是该信息的类型....第一个字节为 1 的信息表示是客户端发送的第一条信息,其后面紧接着客户端的 id .第一个字节为 2 的信息表示客户端断开连接的请求,其后为空.第一个字节为 3 的信息是客户端发送的聊天信息...服务端收到聊天信息后将其发送到所有聊天中的客户端.......
代码:
/*chatcli.c--A TCP Chat Client 客户端程序. */
#include
#include
#include
#define BUFLEN 255
#define max(x,y)(((x)>(y))?(x):(y))
int main(int argc,char ** argv)
{
struct sockaddr_in servaddr;
int sockfd,n;
char inmsg[BUFLEN+1],outmsg[BUFLEN+1];
fd_set infds;
int maxfd;
if(argc!=4) {
printf("%sn",argv[0]);
/*id 是该客户在聊天中的代号 */
exit(0);
}
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd
Email: sen6888@163.com
QQ : 49213575
原理:
客户端程序首先与服务端建立连接,然后交本端的 id 发送到服务端..服务端收到这个消息,就会发送广播,让其它所有已经在聊天中的客户端知道有新的客户加入聊天.退出聊天时客户端不主动关闭连接,而是请求服务端关闭连接.收到服务端发送的FIN信号后(即read()返回0),客户端才关闭所有句柄退出.需要说明的一点,是发送的数据的格式.客户端向服务端发送的每一条信息,其第一个字节代表的是该信息的类型....第一个字节为 1 的信息表示是客户端发送的第一条信息,其后面紧接着客户端的 id .第一个字节为 2 的信息表示客户端断开连接的请求,其后为空.第一个字节为 3 的信息是客户端发送的聊天信息...服务端收到聊天信息后将其发送到所有聊天中的客户端.......
代码:
/*chatcli.c--A TCP Chat Client 客户端程序. */
#include
#include
#include
#define BUFLEN 255
#define max(x,y)(((x)>(y))?(x):(y))
int main(int argc,char ** argv)
{
struct sockaddr_in servaddr;
int sockfd,n;
char inmsg[BUFLEN+1],outmsg[BUFLEN+1];
fd_set infds;
int maxfd;
if(argc!=4) {
printf("%sn",argv[0]);
/*id 是该客户在聊天中的代号 */
exit(0);
}
sockfd = socket(AF_INET,SOCK_STREAM,0);
if(sockfd