本文内容提到的套接字都是Berkely socket.
实用套接字的四个步骤:
1 分配空间和初始化
2 连接
3 传送数据
4 关闭
具体算法:
服务器端:
#include <sys/socket.h>
#include <netinet/in.h>
int socket_descriptor;
socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);
int port = 8000;
struct sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = INADDR_ANY;
pin.sin_port = htons(port);
bind(socket_descriptor,(struct socketaddr *)&sin, sizeof(sin) );
listen(socket_descriptor, 1024);
struct sockaddr_in pin;
int address_size;
int temp_socket_descriptor;
while(1) {
temp_socket_descriptor = accept(socket_descriptor,(struct socketaddr *)&pin, sizeof(address_size));
......
close(temp_socket_descriptor);
}
客户端:
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h> //直接影响sockaddr_in.sin_addr的填写
char * host_name = "127.0.0.1";
struct hostent * server_host_name;
server_host_name = gethostbyname(host_name);
int port = 8000;
struct sockaddr_in pin;
pin.sin_family = AF_INET;
pin.sin_addr.s_addr = htol(INADDR_ANY);
pin.sin_addr.s_addr = ((struct in_addr *)(server_host_name->h_addr))->s_addr; 或者 pin.sin_addr = *(struct in_addr *) server_host_name->h_addr;
pin.sin_port = htons(port);
int socket_descriptor;
socket_descriptor = socket(AF_INET, SOCK_STREAM, 0);
connect(socket_descriptor, (void *)&pin, sizeof(pin));
.......
close(socket_descriptor);
分享到:
相关推荐
【Linux网络编程-网络基础-socket编程-高并发服务器】 在深入探讨Linux下的网络编程之前,我们首先要理解网络通信的基础概念——协议。协议是数据传输和解释的规则,它确保了不同设备之间的通信能顺利进行。例如,...
### 黑马_Linux网络编程-网络基础-socket编程-高并发服务器 #### 知识点概述 本篇文章旨在深入解读“黑马_Linux网络编程-网络基础-socket编程-高并发服务器”相关的核心概念和技术要点,包括网络基础知识、常用...
在Linux环境下进行C语言编程是许多开发者和技术爱好者的基础技能,尤其对于系统级编程和嵌入式领域至关重要。本文将深入探讨Linux系统与C语言的结合,帮助读者掌握在Linux下编写C程序的关键知识点。 首先,了解...
在Linux操作系统中,Socket编程通常采用C语言,因为传统的GNU C库提供了丰富的Socket API函数,但这些函数是面向过程设计的,没有面向对象的封装,使用起来比较复杂。利用C++进行Socket编程,可以通过自定义类来封装...
在Linux系统中,Socket编程是实现网络通信的核心技术,它为开发者提供了标准接口,使得程序可以与网络服务进行数据交互。TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种主要的传输层...
本资料包“linux-socket-C-S.rar”聚焦于C/S(客户端/服务器)架构下的Linux串口和Socket编程,为开发者提供了宝贵的资源。 串口通信是一种传统的通信方式,常用于设备间的短距离通信,如调试设备、数据采集等。在...
在Linux环境下进行C语言编程是许多开发者和技术爱好者深入操作系统内核、实现系统级程序或高效应用的重要途径。本文将详细探讨“Linux下C语言”这一主题,基于标题和描述提供的信息,我们将涵盖C语言的基本概念、...
【网络编程基础与Socket编程】 网络编程是计算机通信的核心,涉及多层协议栈,以便不同设备间能够有效地交换数据。本文将重点介绍网络基础、协议概念以及常见的协议,并探讨网络应用程序设计模式,如C/S模式和B/S...
3. **Socket编程**:在Linux下,使用C语言进行Socket编程主要包括以下几个步骤: - 创建Socket:调用`socket()`函数创建一个Socket描述符。 - 绑定地址:使用`bind()`函数将Socket绑定到特定的IP地址和端口号。 -...
Linux网络编程涉及网络基础知识,尤其是Socket编程和高并发服务器的实现。网络协议是通信的规则,比如文件传输协议FTP,它的基本流程包括三次数据传输:文件名、文件大小和文件内容。随着协议的发展和标准化,形成了...
Linux网络编程是构建高效、高并发服务器的基础,其中的核心概念之一是socket编程。Socket是操作系统提供的接口,允许应用程序进行网络通信。在这个过程中,理解和运用网络基础协议至关重要。 协议是网络通信的规则...
在Linux Socket编程中,我们需要定义服务器和客户端的网络地址,这通常使用`struct sockaddr_in`结构体完成。包含IP地址和端口号。 ```c struct sockaddr_in server; server.sin_family = AF_INET; server.sin_addr...
本篇文章将深入探讨Linux下的C语言SOCKET编程,包括客户端和服务器端的实现。 首先,我们要理解SOCKET的基本概念。在计算机网络中,SOCKET是一种进程间通信(IPC)机制,它允许通过网络连接的两台机器上的进程相互...
### Linux-C编程重要知识点概述 #### 一、基础知识 ##### 源程序编译 - **GCC编译器**: 在Linux环境下,最常用的C语言编译器是GNU Compiler Collection (GCC)。它不仅支持C语言,还支持C++、Objective-C、Fortran...
1. **套接字编程**:这是所有网络编程的基础,C语言中的`socket()`函数用于创建套接字,`bind()`用于绑定IP地址和端口,`listen()`用于设置服务器监听模式,`accept()`用于接收客户端连接,`recv()`和`send()`用于...
源代码文件“linuxc.tgz”是一个压缩包,其中包含了书中各个主题的实例代码。学生可以参考这些代码来加深理解,同时通过实际操作来锻炼编程技能。源代码涵盖了上述所有PPT讲解的主题,如简单的文件操作示例、多进程...
Linux-C-API-ref资源提供了一个详细的学习指南,涵盖了Linux系统调用和C库函数的使用,对于想要深入理解Linux系统编程的开发者来说是非常有价值的参考资料。本文将依据提供的文件“linux-c-api-ref.pdf”来探讨一些...
Linux Socket 网络编程基础 Linux Socket 网络编程基础是指在 Linux 操作系统中使用 Socket 编程技术来实现网络通信的基础知识。它涵盖了 Socket 的定义、 Socket 的类型、网络协议、数据包头信息、BSD Socket 网络...
本资料主要探讨了在C和C++语言环境下如何进行Linux Socket编程,涵盖了客户端和服务器端的实现。 一、Socket基础概念 Socket是操作系统提供的一种接口,允许应用程序通过它与其他计算机上的程序进行通信。它支持TCP...