C网络编程终端聊天(c语言网络编程socket)
关于用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语言实现,在ubuntu终端中运行),要求:
cdsn上面应该有相关的程序,还可能会有代码,你可以去那看看。
如何用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\n");
? ? ? exit(1);
}
pthread_t tid1,tid2;
printf("connected\n");
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: \n ");
fgets(temp,100,stdin);
send(connfd,temp,100,0);
printf("? ? ? ? ? client send OK\n");
}
printf("client send\n");
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 :\n%s\n",temp);
}
}
return NULL;
}
扩展资料:
注意事项
linux下编译多线程代码时,shell提示找不到 pthread_create函数,原因是 pthread.h不是linux系统默认加载的库文件,应该使用类似如下gcc命令进行编译:
gcc echoserver.c -lpthread -o echoserver
只要注意 -lpthread参数就可以了。
用C语言实现聊天室需要什么技术
实现聊天室涉及到通讯技术,网络技术,P2P技术,保密技术,用户交互界面技术等等。通讯技术方面要实现音视频语音对话的功能,用户交互界面需要根据用户的功能的需求和使用体验,制作出体验良好的界面。
每种技术都需要花费大量的时间精力学习。例如,在C语言里面,通讯技术里一般使用套接字Socket来实现。套接字是支持TCP/IP网络通信的基本操作单元。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了称为套接字(Socket)的接口。