Từ 1 tới 5 trên tổng số 5 kết quả

Đề tài: [Linux API] Chát Client-server Trong mạng LAN

  1. #1
    Ngày gia nhập
    02 2008
    Bài viết
    1,009

    Mặc định [Linux API] Chát Client-server Trong mạng LAN

    Server

    Code:
    /*server*/
    #include <stdio.h>
    #include <sys/types.h> 
    #include <sys/socket.h>
    #include <netinet/in.h>
    #define PORT_LISTEN 9999
    int main(int argc, char *argv[])
    {
    	int sockfd, newsockfd; 
    	int clilen;
    	char buffer[256];
    	struct sockaddr_in serv_addr, cli_addr;
    	int n;
    	sockfd = socket(AF_INET, SOCK_STREAM, 0);
    	if (sockfd < 0)
    	{
    		fprintf(stderr,"Can't create the socket!\n");
    		exit(1);
    	} 
    	bzero((char *) &serv_addr, sizeof(serv_addr));
    	serv_addr.sin_family = AF_INET;
    	serv_addr.sin_addr.s_addr = INADDR_ANY;
    	serv_addr.sin_port = htons(PORT_LISTEN);
    	if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0)
    	{
    		fprintf(stderr,"Can't bind name to socket!\n");
    		exit(1);
    	}
    	listen(sockfd,5);
    	clilen = sizeof(cli_addr);
    	newsockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
    	if (newsockfd < 0)
    	{
    		fprintf(stderr,"Can't accept from client!\n");
    		exit(1);
    	}
    	bzero(buffer,256);
    	n = read(newsockfd,buffer,255);
    	if (n < 0)
    	{
    		fprintf(stderr,"Error reading from socket!\n");
    		exit(1);
    	}
    	printf("Here is the message: %s\n",buffer);
    	n = write(newsockfd,"I got your message",18);
    	if (n < 0)
    	{
    		fprintf(stderr,"Error writing to socket!\n");
    		exit(1);
    	}
    
    	return 0; 
    }

    client
    Code:
    /*This is the client for the TCP socket*/
    #include <stdio.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <netdb.h> 
    #define PORT_LISTEN 9999
    #define IP_ADDRESS "127.0.0.1"
    int main(int argc, char *argv[])
    {
    	int sockfd, n;
    	struct sockaddr_in serv_addr;
    	struct hostent *server;
    	char buffer[256];
    	sockfd = socket(AF_INET, SOCK_STREAM, 0);
    	if (sockfd < 0)
    	{
    		fprintf(stderr, "Error opening the socket!\n");
    		exit(1);
    	}
    
    	server = gethostbyname(IP_ADDRESS);
    	if (server == NULL){
    		fprintf(stderr, "Error, no such a host!\n");
    		exit(0);
    	}
    	bzero((char *) &serv_addr, sizeof(serv_addr));
    	serv_addr.sin_family = AF_INET;
    	bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length);
    	serv_addr.sin_port = htons(PORT_LISTEN);
    	if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0)
    	{
    		fprintf(stderr, "Can't connect to server!\n");
    		exit(1);
    	}
    	printf("Please enter the message: ");
    	bzero(buffer,256);
    	fgets(buffer,255,stdin);
    	n = write(sockfd,buffer,strlen(buffer));
    	if (n < 0){
    		fprintf(stderr, "Error writing to socket!\n");
    		exit(1);
    	}
    
    	bzero(buffer,256);
    	n = read(sockfd,buffer,255);
    	if (n < 0){
    		fprintf(stderr, "Error reading from socket!\n");
    		exit(1);
    	}
    
    	printf("%s\n",buffer);
    	return 0;
    }

  2. #2
    Ngày gia nhập
    04 2011
    Bài viết
    1

    Mặc định chat client server

    minh co 1 vi du dua len cho moi nguoi tham khao,hy vong se giup ich cho moi nguoi
    Attached Files Attached Files

  3. #3
    Ngày gia nhập
    09 2008
    Bài viết
    57

    ChatInLan rất hay nếu như có chức năng tự động tìm ai đó đang sử dụng phần mềm chát này trong mạng, cho phép chát giữa không chỉ các máy cùng platform mà cả khác nhau cũng có thể chát được.
    Nếu có thể thì mọi người cùng nhau xây dựng cái này.

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    1

    Mặc định bạn viết bằng c trong ubuntu à.

    sao ví dụ của bạn mình không thấy code phần nào bạn có thể cho mình tham khảo code ko?
    Trích dẫn Nguyên bản được gửi bởi duonghn9 Xem bài viết
    minh co 1 vi du dua len cho moi nguoi tham khao,hy vong se giup ich cho moi nguoi

  5. #5
    Ngày gia nhập
    04 2007
    Bài viết
    22

    Có bạn nào có chương trình chat client-client thì cho mình xin với, tìm trên mạng toàn chương trình chat dùng Client - server. Có vẻ rất ít người nghĩ đến client -client trong LAN,

Các đề tài tương tự

  1. Trả lời: 6
    Bài viết cuối: 28-06-2014, 12:02 PM
  2. Socket Không thể xóa Client ngắt kết nối với Server trong danh sách Client đang kết nối
    Gửi bởi thanhtanh trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 20-10-2012, 04:37 PM
  3. Chạy ứng dụng client/server vc++ trên 2 máy, làm thế nào để client kết nối server?
    Gửi bởi hotritam365 trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 5
    Bài viết cuối: 12-07-2012, 10:20 PM
  4. Có cần cài SQlServer trên máy Client, trong ứng dụng Server Client
    Gửi bởi billsang trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 28-10-2011, 01:09 PM
  5. Socket kết nối client server từ 2 máy trong mạng LAN
    Gửi bởi RoboWonder trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 18-05-2011, 01:30 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn