1. 重庆云诚科技 > 互联网资讯 >

┏ 搭建聊天网站 ┛linux搭建聊天服务器

导读我想在自己的linux系统上弄个聊天室具体该怎么操作?贡献用户名:【┈━═☆悶騷】 ,现在由重庆云诚科技小编为你详解与【搭建聊天网站】的相关内容!呵呵 你的问题其实也就是搭...

今天我们来聊聊[搭建聊天网站],以下3关于linux搭建聊天服务器的观点希望能帮助到您找到想要的结果。

我想在自己的linux系统上弄个聊天室具体该怎么操作?

贡献用户名:【┈━═☆悶騷】 ,现在由重庆云诚科技小编为你详解与【搭建聊天网站】的相关内容!

呵呵 你的问题其实也就是搭建 apache + php + mysql 网站运行环境

以上就是重庆云诚科技小编解答(┈━═☆悶騷)回答关于“我想在自己的linux系统上弄个聊天室具体该怎么操作?”的答案,接下来继续为你详解体育用户(孤祭。)贡献“linux下用c语言编写局域网聊天工具”的一些相关解答,希望能解决你的问题!

我想在自己的linux系统上弄个聊天室具体该怎么操作?

linux下用c语言编写局域网聊天工具

贡献用户名:【孤祭。】 ,现在由重庆云诚科技小编为你详解与【搭建聊天网站】的相关内容!

贡献者回答/*服务器*/

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <sys/socket.h>

#include <sys/wait.h>

#define SERVPORT 5555

#define BACKLOG 10

#define MAX(a,b) ((a)>(b)(a):(b))

void str_echo(int);

void server()

{

int sockfd,client_fd;

struct sockaddr_in my_addr;

struct sockaddr_in remote_addr;

socklen_t sin_size;

if((sockfd=socket(AF_INET,SOCK_STREAM,0))== -1)

{

perror("socket create error!");

exit(1);

}

my_addr.sin_family=AF_INET;

my_addr.sin_port=htons(SERVPORT);

my_addr.sin_addr.s_addr=INADDR_ANY;

bzero(&(my_addr.sin_zero),8);

if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)

{

perror("bind error!");

exit(1);

}

if(listen(sockfd,BACKLOG)==-1)

{

perror("listen error!");

exit(1);

}

while(1)

{

sin_size=sizeof(struct sockaddr_in);

if((client_fd=accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size))==-1)

{

perror("accept error!");

continue;

}

printf("received a connection from %s\n",inet_ntoa(remote_addr.sin_addr));

if(!fork())

{

close(sockfd);

str_echo(client_fd);

exit(0);

}

close(client_fd);

}

}

void str_echo(int sockfd)

{

int maxfd;

char sendbuf[1024]={0};

char recvbuf[1024]={0};

fd_set rfds;

while(1)

{

FD_SET(0,&rfds);

FD_SET(sockfd,&rfds);

maxfd=MAX(0,sockfd)+1;

select(maxfd,&rfds,NULL,NULL,NULL);

if(FD_ISSET(sockfd,&rfds))

{

bzero(recvbuf,1024);

recv(sockfd,recvbuf,1024,0);

printf("C:%s\n",recvbuf);

}

if(FD_ISSET(0,&rfds))

{

read(0,sendbuf,1024);

send(sockfd,sendbuf,strlen(sendbuf),0);

bzero(sendbuf,1024);

}

}

}

int main()

{

server();

return 0;

}

/*客户端*/

#include <stdio.h>

#include <stdlib.h>

#include <errno.h>

#include <string.h>

#include <netdb.h>

#include <sys/types.h>

#include <netinet/in.h>

#include <sys/socket.h>

#define SERVPORT 5555

#define MAXSIZE 1024

#define MAX(a,b) ((a)>(b)(a):(b))

void client(int argc,char **argv)

{

int sockfd,maxfd;

char sendbuf[MAXSIZE]={0};

char recvbuf[MAXSIZE]={0};

// struct hostent *host;

struct sockaddr_in serv_addr;

fd_set rfds;

/* if(argc<2)

{

fprintf(stderr,"Please enter the sserver's name!\n");

exit(1);

}

if((host=gethostbyname(argv[1]))==NULL)

{

herror("get host by name error!\n");

exit(1);

}

*/

if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)

{

perror("socket creat error!\n");

exit(1);

}

serv_addr.sin_family=AF_INET;

serv_addr.sin_port=htons(SERVPORT);

// serv_addr.sin_addr=*((struct in_addr *)host->h_addr);

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

bzero(&(serv_addr.sin_zero),8);

if(connect(sockfd,(struct sockaddr *)&serv_addr,sizeof(struct sockaddr))==-1)

{

perror("connection error!\n");

exit(1);

}

FD_ZERO(&rfds);

while(1)

{

FD_SET(0,&rfds);

FD_SET(sockfd,&rfds);

maxfd=MAX(0,sockfd)+1;

select(maxfd,&rfds,NULL,NULL,NULL);

if(FD_ISSET(sockfd,&rfds))

{

bzero(recvbuf,MAXSIZE);

recv(sockfd,recvbuf,MAXSIZE,0);

printf("S:%s\n",recvbuf);

}

if(FD_ISSET(0,&rfds))

{

fgets(sendbuf,MAXSIZE,stdin);

send(sockfd,sendbuf,strlen(sendbuf),0);

bzero(sendbuf,MAXSIZE);

}

}

// close(sockfd);

}

int main(int argc,char **argv)

{

client(argc,argv);

return 0;

}

以上就是重庆云诚科技小编分享贡献者:(孤祭。)贡献的关于“linux下用c语言编写局域网聊天工具”的问题了,不知是否已经解决你的问题?如果没有,下一篇内容可能是你想要的答案,下面继续解析下文用户【如梦初醒的疼痛】分享的“如何在linux搭建完整的web服务器?”的一些相关问题做出分析与解答,如果能找到你的答案,可以关注本站。

如何在linux搭建完整的web服务器?

贡献用户名:【如梦初醒的疼痛】 ,现在由重庆云诚科技小编为你详解与【搭建聊天网站】的相关内容!

贡献者回答可以参考如下Web服务器的建立过程。示例环境及web服务器软件:

Ubuntu 12.04

LAMP(Linux,Apache,Mysql,PHP)

1、安装Apache

(1)在安装HTTP Server之前需安装APR(Apache Portable Runtime)和APR-util安装APR

$ tar zxvf apr-1.4.6.tar.gz

$ cd apr-1.4.6/

$ ./configure

$ make

$ sudo make install

(2)安装APR-util

$ tar zxvf apr-util-1.4.1.tar.gz

$ cd apr-util-1.4.1

$ ./configure –with-apr=/usr/local/apr (whereis apr)

$ make

$ sudo make install

(3)安装httpd-2.4.2.tar.bz2默认安装位置/usr/local/apache2网页放在/usr/local/apache2/htdocs配置文件/usr/local/apache2/conf/httpd.conf

$ tar jxvf httpd-2.4.2.tar.bz2

$ cd httpd-2.4.2/

$ ./configure

$ make

$ sudo make install

(4)启动HTTP Server$ sudo /usr/local/apache2/bin/apachectl startAH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1. Set the ‘ServerName’ directive globally to suppress this message

(5)查看http是否正常运行$ netstat -a | grep httptcp 0 0 *:http *:* LISTEN

(6)在浏览器输入127.0.0.1如果正常应该显示“It works!”

2、安装MySQL

(1)、下载安装mysql-5.5.25.tar.gz,默认安装位置/usr/local/mysql/

$ tar zxvf mysql-5.5.25.tar.gz

$ cd mysql-5.5.25/

$ sudo groupadd mysql

$ sudo useradd -r -g mysql mysql

$ cmake .

$ make

$ sudo make install

$ cd /usr/local/mysql/

$ sudo chown -R mysql .

$ sudo chgrp -R mysql .

$ sudo scripts/mysql_install_db –user=mysql

$ sudo chown -R root .

$ sudo chown -R mysql data/

$ sudo cp support-files/my-medium.cnf /etc/my.cnf

$ sudo cp support-files/mysql.server /etc/init.d/mysql.server

(2)、启动MySQL:

方法1:$ sudo service mysql.server start

方法2:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

3、安装PHP

(1)安装下载php-5.4.4.tar.gz

$ tar zxvf php-5.4.4.tar.gz

$ cd php-5.4.4

$ ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --enable-mbstring --with-mcrypt(可能需要安装libmcrypt-dev )

$ sudo make install

$ sudo cp php.ini-development /usr/local/lib/php.ini

(2)配置HTTP Server使之支持PHPapache配置文件/usr/local/apache2/conf/httpd.conf修改或添加如下配置

<;IfModule dir_module>

DirectoryIndex index.php

<;/IfModule>

<;FilesMatch \.php$>

SetHandler application/x-httpd-php

<;/FilesMatch>

(3)重启HTTP Server

$ sudo /usr/local/apache2/bin/apachectl restart

关于[搭建聊天网站]和[linux搭建聊天服务器]的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

推荐文章:

  • 膜的组词和部首,膜的组词和拼音是什么
  • 亲字组词100个 亲字的组词有
  • 酬谢是什么意思,定当酬谢是什么意思
  • 异的组词和部首,株的组词和部首
  • 箭组词和拼音 耸组词和拼音部首
  • 有志不在年高的意思-有志不在年高的意思雨来表达了
  • 繁衍的意思 繁衍的意思简单解释
  • 彤组词,胀组词和拼音
  • 血泊的拼音 泊的拼音
  • 螺组词拼音 螺的组词和拼音
  • 本文由网上采集发布,不代表我们立场,转载联系作者并注明出处:https://www.cqycseo.com/zixun/2994.html

    联系我们