socket编程基础2

包含头文件<sys/socket.h>

功能:创建一个套接字用于通信

原型

int socket(int domain, int type, int protocol);

参数

domain :指定通信协议族(protocol family)

type:指定socket类型,流式套接字SOCK_STREAM,数据报套接字SOCK_DGRAM,原始套接字SOCK_RAW

protocol :协议类型

返回值:成功返回非负整数, 它与文件描述符类似,我们把它称为套接口描述字,简称套接字。失败返回-1

包含头文件<sys/socket.h>

功能:绑定一个本地地址到套接字

原型

int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

参数

sockfd:socket函数返回的套接字

addr:要绑定的地址

addrlen:地址长度

返回值:成功返回0,失败返回-1

包含头文件<sys/socket.h>

功能:将套接字用于监听进入的连接

原型

int listen(int sockfd, int backlog);

参数

sockfd:socket函数返回的套接字

backlog:规定内核为此套接字排队的最大连接个数

返回值:成功返回0,失败返回-1

一般来说,listen函数应该在调用socket和bind函数之后,调用函数accept之前调用。

对于给定的监听套接口,内核要维护两个队列:

1、已由客户发出并到达服务器,服务器正在等待完成相应的TCP三路握手过程

2、已完成连接的队列

包含头文件<sys/socket.h>

功能:从已完成连接队列返回第一个连接,如果已完成连接队列为空,则阻塞。

原型

int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);

参数

sockfd:服务器套接字

addr:将返回对等方的套接字地址

addrlen:返回对等方的套接字地址长度

返回值:成功返回非负整数,失败返回-1

包含头文件<sys/socket.h>

功能:建立一个连接至addr所指定的套接字

原型

int connect(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

参数

sockfd:未连接套接字

addr:要连接的套接字地址

addrlen:第二个参数addr长度

返回值:成功返回0,失败返回-1

socket编程基础2,布布扣,bubuko.com

时间: 2024-12-19 14:34:15

socket编程基础2的相关文章

socket编程基础3

服务器端尽可能使用RUSEADDR. 在绑定之前尽可能调用setsockopt来设置SO_REUSEADDR套接字选项. 使用SO_REUSEADDR选项可以使得不必等待TIME_WAIT状态消失就可以重启服务器. fork()产生一个进程来处理客户端与服务器端之间的消息.父进程保持监听状态连接.accept返回多个已连接套接字! echocli.c #include <unistd.h> #include <sys/types.h> #include <sys/socket

c#socket编程基础 [转帖]

c#socket编程基础 Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Int

java socket编程基础(转)

一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

你得学会并且学得会的Socket编程基础知识

这一篇文章,我将图文并茂地介绍Socket编程的基础知识,我相信,如果你按照步骤做完实验,一定可以对Socket编程有更好地理解. 本文源代码,可以通过这里下载 http://files.cnblogs.com/chenxizhang/SocketWorkshop.rar 第一步:创建解决方案 第二步:创建服务端程序 这里可以选择“Console Application”这个类型,比较方便调试 然后编写如下代码,实现服务器的基本功能 using System; using System.Coll

Java从零开始学四十五(Socket编程基础)

一.网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则

Python学习笔记——基础篇【第七周】———FTP作业(面向对象编程进阶 &amp; Socket编程基础)

FTP作业 本节内容: 面向对象高级语法部分 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 参考:http://www.cnblogs.com/wupeiqi/p/4766801.html metaclass 详解文章:http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python 得票最高那个答案写的非常好 Socket 编程 参考:http://www.cnblogs.co

c#socket编程基础

Microsoft.Net Framework为应用程序访问Internet提供了分层的.可扩展的以及受管辖的网络服务,其名字空间System.Net和System.Net.Sockets包含丰富的类可以开发多种网络应用程序..Net类采用的分层结构允许应用程序在不同的控制级别上访问网络,开发人员可以根据需要选择针对不同的级别编制程序,这些级别几乎囊括了Internet的所有需要--从socket套接字到普通的请求/响应,更重要的是,这种分层是可以扩展的,能够适应Internet不断扩展的需要.

Java Socket编程基础篇

原文地址:Java Socket编程----通信是这样炼成的 Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket.像大家熟悉的QQ.MSN都使用了Socket相关的技术.下面就让我们一起揭开Socket的神秘面纱. Socket编程 网络基础知识点: 两台计算机间进行通讯需要以下三个条件 IP地址.协议.端口号: IP地址:定位应用所在机器的网络位置.(比如家庭住址:北京市朝阳区XX街道XX小区) 端口号

Java Socket编程基础及深入讲解

Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基本示例 二.消息通信优化 2.1 双向通信,发送消息并接受消息 2.2 使用场景 2.3 如何告知对方已发送完命令 2.3.1 通过Socket关闭 2.3.2 通过Socket关闭输出流的方式 2.3.3 通过约定符号 2.3.4 通过指定长度 三.服务端优化 3.1 服务端并发处理能力 3.2