linux socket聊天程序

原创 2012年03月22日 22:48:53

socket.h

#include<stdio.h>                                                                                   
#include<pthread.h>
#include<time.h>
#include<sys/select.h>
#include<signal.h>
#include<sys/un.h>
#include<unistd.h>
#include<sys/uio.h>
#include<errno.h>
#include<pthread.h>
#include<string.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<sys/time.h>
#include<netinet/in.h>
#include<sys/wait.h>
#include<stdlib.h>
#include<netdb.h>
#include<arpa/inet.h>

client.c

#include "socket.h"

int main()
{
        int c_socket;
        int c_accept;
        int c_read;
        int backlog = 10;
        char mes[512],buffer[512],clientname[20];
        int len_c=sizeof(struct sockaddr);
        struct sockaddr_in c_sock;
        bzero(mes, sizeof(mes));
                                               
        c_socket=socket(AF_INET,SOCK_STREAM,0);
        if(c_socket==-1)
        {  
                printf("socket");
        }

       c_sock.sin_family=AF_INET;
       c_sock.sin_port=htons(5000);
       c_sock.sin_addr.s_addr=inet_addr("127.0.0.1");

      if((connect(c_socket, (struct sockaddr*)& c_sock, len_c)) == -1)
      {
               printf("connect!");
      }

      while(fgets(mes, sizeof(mes), stdin) != NULL)
     {
           write(c_socket, mes, sizeof(mes));
           read(c_socket, buffer, sizeof(buffer));
           printf("%s",buffer);
           memset(buffer,512,0);
     }
}
 

server.c

#include "socket.h"

int main()
{
        int c_socket;
        int c_accept;
        int c_read;
        int backlog = 10;
        char mes[512],buffer[512],clientname[20];
        int len_c=sizeof(struct sockaddr);
        struct sockaddr_in c_sock;
        bzero(mes, sizeof(mes));
       
        c_socket=socket(AF_INET,SOCK_STREAM,0);
        if(c_socket==-1)
        {  
                printf("socket");
        }

        c_sock.sin_family=AF_INET;
        c_sock.sin_port=htons(5000);
        c_sock.sin_addr.s_addr=inet_addr("127.0.0.1");

        if((bind(c_socket, (struct sockaddr*)& c_sock, len_c)) == -1)
        {
                printf("bind!");
        }

        if((listen(c_socket, backlog)) == -1)
        {
                printf("listen");
        }

        for( ; ;)
        {
                if((c_accept = accept(c_socket, (struct sockaddr*)& c_sock, &len_c)) == -1)
                {
                        printf("accept");
                }

               
                while((c_read = read(c_accept, mes, sizeof(mes))) > 0)
                        write(c_accept, mes, c_read);

        }

}  

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux下socket异步通讯聊天程序

Linux下socket异步通讯聊天程序(转) original from: http://yangqi.org/linux-socket-asynchronous-im-system/ Po...

基于Linux的SOCKET编程之TCP半双工Client-Server聊天程序

所谓半双工通信,即通信双方都可以实现接发数据,但是有一个限制:只能一方发一方收,之后交换收发对象。也就是所谓的阻塞式的通讯方式。一、基本框架:1、首先搞清我们进行编程所处的的位置: TCP编程,具有...

[C语言] 基于Linux的一对一Socket简易聊天程序实例

如题 此篇示例为Socket网络程序的基本范例,于LINUX环境下编译并运行通过 使用方法请参阅代码,代码不复杂 chatclient.c #include #include #i...

Linux-C 聊天程序学习(socket+pthread)

主要学习socket编程。 实现client跟server随意聊天(TCP协议)。只允许一个server跟一个client 聊天,不能群聊 利用多线程实现,聊天双方各创建两个线程:实现发送和接受消息。...

基于Linux的Socket编程之TCP全双工Server-Client聊天程序

一、引言:由于accept函数、read、write、recv、send等函数都是是阻塞式的,在同一个进程之中,只要有任何一个函数没有执行完毕,处于阻塞状态,之后的函数与功能就不能处理,很难实现点对点...

C# socket 局域网聊天程序的一点心得

C# socket 局域网聊天程序的一点心得 (一)服务器与客户端的关系 1、服务器开启监听服务        服务器使用特定的端口不停的监听来自客户端的消息。(开启一个新线程进行监听)。 2、监听...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)