Network client/server (二)

接上篇 Network client/server (一)

server.c

1  header files

#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

header

2  socket

int main()
{
  int server_sockfd, client_sockfd;
  int server_len, client_len;

  struct  sockaddr_in  server_address;
  struct  sockaddr_in  client_address;
  unlink("server_socket");

  server_sockfd = socket(AF_INET, SOCK_STREAM, 0);
  server_address.sin_family = AF_INET;
  server_address.sin_addr.s_addr = htonl(INADDR_ANY);
  server_address.sin_port = htons(9734);
  server_len = sizeof(server_address);

socket

3  bind, listen

bind(server_sockfd, (struct sockaddr*)&server_address, server_len);
listen(server_sockfd, 5);

bind, listen

4  while loop: accept - read/write - close

  while(1)
  {
    char ch;
    printf("server waiting\n");
    client_len = sizeof(client_address);
    client_sockfd = accept(server_sockfd, (struct sockaddr*)&client_address, &client_len);

    read(client_sockfd, &ch, 1);
    ch++;
    write(client_sockfd, &ch,1);

    close(client_sockfd);
  }
}

while loop

小结:

client: socket -- connect --r/w -- close

server: socket -- bind -- listen -- accept -- r/w -- close

while(1)

时间: 2024-10-12 10:35:51

Network client/server (二)的相关文章

《Python Network Programming Cookbook》读书笔记1---套接字, IPv4, 简单的Client/Server程序

这一部分主要介绍python中socket模块的相关内容,socket即套接字. socket是使用TCP/IP协议的应用程序通常采用的应用编程接口,它位于运输层和应用层之间,起源于UNIX,由于遵从UNIX“一切皆文件的”思想故socket可看作一种特殊的文件,对其的操作基本可以视为读写I/O.打开.关闭.关于套接字的基本概念@吴秦的Linux Socket编程(不限Linux)写的很详细,大家可以参考. 在下面列出的各个部分中我将先贴出代码,然后对其进行解释. 通过python3获得本机名和

Client–server model

Client–server model From Wikipedia, the free encyclopedia The client–server model of computing is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service reque

Linux SocketCan client server demo hacking

/*********************************************************************** * Linux SocketCan client server demo hacking * 说明: * 本文主要是解读Linux上的SocketCan的基本使用方法,内容和Linux上的 * 网络编程差不多. * * 2016-3-28 深圳 南山平山村 曾剑锋 ********************************************

DTLS协议中client/server的认证过程和密钥协商过程

我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对方信息进行对比校验身份. 1.DTLS介绍 1.1 DTLS的作用 互联网先驱们最开始在设计互联网协议时主要考虑的是可用性,安全性是没有考虑在其中的,所以传输层的TCP.UDP协议本身都不具备安全性.SSL/TLS协议是基于TCP socket,利用加密.基于数字证书的身份验证等机制在传输层和应用层

QDjango,tufao,C++ websocket client/server

QDjango, a Qt-based C++ web frameworkhttps://github.com/jlaine/qdjango/ An asynchronous web framework for C++ built on top of Qt http://vinipsmaker.github.io/tufao/https://github.com/vinipsmaker/tufao C++ websocket client/server library http://www.za

NetMQ(ZeroMQ)Client =&gt; Server =&gt; Client 模式的实现

ØMQ (也拼写作ZeroMQ,0MQ或ZMQ)是一个为可伸缩的分布式或并发应用程序设计的高性能异步消息库.它提供一个消息队列, 但是与面向消息的中间件不同,ZeroMQ的运行不需要专门的消息代理(message broker).该库设计成常见的套接字风格的API. ZeroMQ是由iMatix公司和大量贡献者组成的社群共同开发的.ZeroQ通过许多第三方软件支持大部分流行的编程语言 .类库提供一些套接字(对传统Berkeley套接字和Unix domain socket的泛化),每一个套接字可

Netty:一种非易失堵塞client/server相框

Netty:一种非易失堵塞client/server相框 作者:chszs.转载需注明.博客主页:http://blog.csdn.net/chszs Netty是一个异步事件驱动的网络应用框架,为Java网络应用的开发带来了一些新活力.Netty由协议server和client所组成.可用于高速开发可维护的高性能软件.Netty应用框架及其工具简化了网络编程,并且由Netty社区进行维护. Netty还被归类为NIOclient/server框架.用它能够高速.简易地开发网络应用.使得TCP和

Java Client/Server 基础知识

Java的网络类库支持多种Internet协议,包括Telnet, FTP 和HTTP (WWW),与此相对应的Java网络类库的子类库为:  Java.net  Java.net.ftp  Java.net.www.content  Java.net.www.html  Java.net.www.http  这些子类库各自容纳了可用于处理Internet协议的类和方法.其中,java.net用于处理一些基本的网络功能,包括远程登录(Telnet):java.net.ftp用于处理ftp协议:j

Android—Camera Client/Server的binder IPC机制

本文首先参考Android Binder IPC分析一文分析了Android Binder IPC通信机制过程及涉及到的各个子元素相关概念,从代码细节脱离出来,因而整体上把握Android binder IPC通信机制,是能够理解文章最后Camera Framework进程间通信实现的基础.参考Android 4.4版本源码. Binder通信概述 Android进程间通信(Inter-Process Communication, IPC)采用binder通信机制,是一种client/serve