⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serveur1.c

📁 linux 下socket 客户端和服务器
💻 C
字号:
#include <errno.h>#include <sys/wait.h>#include <unistd.h>#include "creerSocket.h"#define BUFF_SIZE 256/*void f(int desc) {  int n;  char buff1[BUFF_SIZE];  char buff2[BUFF_SIZE];  n = read(desc, buff1, BUFF_SIZE);  if ( n == -1 ) { printf("erreur"); perror("Erreur de lecture"); return; }  buff1[n] = '\0';  printf("client m'envoye %s\n", buff1);  int i = atoi(buff1);  sprintf(buff2, "boujour,%d", i+1);  write(desc, buff2, BUFF_SIZE);}*/void f(int clientfd) {  char buff [100];  int n;  printf("comme in f\n");  n = recv(clientfd, buff, 100, 0 );  printf("n= %d", n);  if ( n == -1 ) { printf("erreur"); perror("Erreur de lecture"); return; }  while(n  > 0) {    printf("number of receive bytes = %d ", n);    buff[n] = '\0';    write(STDOUT_FILENO, buff, n);    send(clientfd, buff, n, 0);   // buff[n] = '';    if(strcmp(buff, "quit ") == 0) {     break;    }  }}int main(int argc, char **argv) {  pid_t pid;  struct sockaddr_in adr;  socklen_t lg_adr = (socklen_t)sizeof(struct sockaddr_in);  int port, ecoute, connexion;  if (argc < 2) { fprintf(stderr, "usage: %s port\n",argv[0]); exit(2); }  port = atoi(argv[1]);  ecoute = creerSocket(SOCK_STREAM, port, &adr);  printf("ok,creer socket\n");  if ( ecoute == -1 ) {    fprintf(stderr, "Creation de socket impossible\n"); exit(2);  }  if (listen(ecoute, 10) == -1) { perror("listen"); exit(2); }  printf("ok,attendre clients\n");  while(1) {    connexion = accept(ecoute, (struct sockaddr *)&adr, &lg_adr);    printf("accept\n");    if (connexion == -1) {      if (errno == EINTR) continue;      else { perror("accept"); exit(1); }    }        switch (fork()) {      case -1 :        perror ("fock");        exit(1);      case 0 :        printf("fils");        close (ecoute);        f(connexion);        close (connexion);        exit(0);      default :             shutdown(connexion, SHUT_WR);     }  }  close (ecoute);  exit(0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -