Socket编程 (一)

摘要:
“);System.out.println;}}服务器15//socket16intsockd=socket;17if{18perror;19return;20}2122//bid23structsockdr_inaddr={0};24addr.sin_family=AF_inet;25addr.sin_port=htons;26//addr.sin_addr.s_addr=inet_addr;2728if(bind(sockd,(void*)&addr,sizeof(structsockaddr)))!

<<Linux 网络编程>>摘要

Socket编程 (一)第1张

Socket编程 (一)第2张

        Socket编程 (一)第3张

 注意: 其中的大部分成员是网络字节序(大端字节序);

Socket编程 (一)第4张

Socket编程 (一)第5张

编程:

Socket编程 (一)第6张

Socket编程 (一)第7张

Socket编程 (一)第8张

服务器先要做的事情:

socket() 初始化Socket

bind() 绑定本地端口

listen() 监听端口

accept() 响应客户端请求

一个例子

  客户端(Windows 系统, Java 环境)

public class xxx {
	private static String host = "www.mylinux.net";
	private static int port = 8848;

	public static void main(String[] args) throws Throwable {
		Socket s = new Socket();
		if (!s.isConnected()) {
			System.out.println("正在连接服务器...");
			try {
				s.connect(new InetSocketAddress(host, port), 2000);
			} catch (IOException e) {
				System.out.println("连接超时!");
				return;
			}
			System.out.println("连接成功!");
			System.out.println(s);
        }
}

  服务器端(Linux 系统, glibc环境)

 15         // socket
 16         int sockfd = socket(AF_INET, SOCK_STREAM, 0);
 17         if (sockfd == -1) {
 18                 perror("socket()");
 19                 return ;
 20         }
 21
 22         // bind
 23         struct sockaddr_in addr = { 0 };
 24         addr.sin_family = AF_INET;
 25         addr.sin_port = htons(8848);
 26         //addr.sin_addr.s_addr = inet_addr("0.0.0.0");
 27
 28         if (bind(sockfd, (void *)&addr, sizeof(struct sockaddr)) != EXIT_SUCCESS) {
 29                 perror("bind()");
 30                 return ;
 31         }
 32
 33         // listen
 34         if (listen(sockfd, 5) != EXIT_SUCCESS) {
 35                 perror("listen()");
 36                 return ;
 37         }
 38
 39         // accept
 40         accept(sockfd, NULL, NULL);
    

  Socket编程 (一)第9张

  注意: bind() 过程中绑定地址不是本地回环地址 127.0.0.1, 而是 0x0, 这个IP相当于java中的this,代表当前设备的IP, 否则即使绑定成功了, 也只能在本地通过唯一IP访问。

免责声明:文章转载自《Socket编程 (一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇微信公众平台开发(83) 生成带参数二维码WPF DevExpress ChartControl使用之PieChart下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【LInux】查看Linux系统版本信息

一、查看Linux内核版本命令(两种方法): 1、cat /proc/version [root@S-CentOS home]# cat /proc/versionLinux version 2.6.32-431.el6.x86_64 (mockbuild@c6b8.bsys.dev.centos.org) (gcc version 4.4.7 20120...

《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程

计算机原理概念: 1、CPU和内存中的存储单元通信线路称为总线(BUS),总线是被指令和数据复用的,所以也称为前端总线。 2、计算机中计算频率的时间标准即晶体振荡器原理,精确计算时间长度,根据相同的时间统计变化的次数,即保持时钟同步。 3、每一个芯片在厂家生产时都有一个以微码(汇编语言)形式存在内置接口,完成一定意义上的智能操作。 4、CPU中控制器在未从...

Linux下新建用户自动复制文件

/etc/skel/目录是用来存放新用户配置文件的目录,当我们添加新用户的时候,这个目录下的所有文件会自动被复制到新添加的用户的家目录下。 这个目录下的所有文件都是隐藏文件(以.点开头的文件)。 通过修改、添加、删除/etc/skel目录下的文件,我们可为新创建的用户提供统一的、标准的、初始化用户环境。 如果删除了用户目录下的文件,可通过拷贝该文件夹下的相...

安全计算环境(三)Linux服务器2

Linux服务器 控制点 2. 访问控制 在系统中实施访问控制的目的是为了保证系统资源(操作系统和数据库管理系统)受控、合法地被使用。用户只能根据自己的权限来访问系统资源,不得越权访问。 a) 安全要求:应对登录的用户分配账户和权限。 要求解读:对于Linux操作系统中的一些重要文件,应检查系统主要目录的权限设置情况,Linux操作系统的文件操作权限,包括...

浅析 Hi MPP 中的 uvc_app

以往我们说UVC一般搜索到的内容是板端作为主机,外接USB视频设备并使用UVC去控制,那么板端也就是从机中的UVC是如何实现的。下面就记录一个海思SDK中的例子,源码路径HISDK/mpp/sample/uvc_app。 文件描述 文件 说明 application.c 主函数起始 hiuac.c 提供hiuac对象,负责音频控制 hiu...

深入理解Android相机体系结构之3---相机服务层

一、简介 Camera Service被设计成一个独立进程,作为一个服务端,处理来自Camera Framework 客户端的跨进程请求,并在内部进行一定的操作,随后作为客户端将请求再一次发送至作为服务端的Camera Provider,整个流程涉及到了两个跨进程操作,前者通过AIDL机制实现,后者通过HIDL机制实现,由于在于Camera Provide...