Welcome 微信登录

首页 / 操作系统 / Linux

成功实现Linux下Socket编程中用send发送结构体

成功实现Linux下Socket编程中用send发送结构体

Linux网络通信 Linux下多客户端聊天软件 Linux程序设计 Linux socket send and recevie structure最近在开发一个Linux下的聊天软件,好久没有做C语言的开发了,感觉到很多东西已经生疏了,这下又碰到用Socket传递结构体的问题,google了一下,发现也有不少朋友遇到同样的问题,所以就打算写出自己的解决办法,跟大家分享。Socket中的send函数可以发送字符串,但不能直接发送结构体,因此在发送端先把结构...
JADE中agent应用的关键

JADE中agent应用的关键

要注意:为什么我们在调用web服务或者其他应用服务的时候,推荐使用agent来做代理。这个问题是否明白是解决多agent之间交互的关键。要知道,agent之间的通信采用异步信息传输机制。这一点十分重要。比如,你所接收不同消息模板的消息可能会在不同的时间到达,并不一定是先发送的消息先接收到。又比如,你声明了一个AID的数组,用于存放所搜索到的能提供不同服务的agent的AID身份。然而,这样做,你就无法准确定位你获取的服务agent是在数组中的哪一个位置。因...
JAVA读取XML文件详细解析

JAVA读取XML文件详细解析

1.有很多时候我们需要将相关动态的信息保存到XML文件中去,那么我们就可以动态输入相关信息。特别是针对数据库方面的操作的时候就非常地灵活。那我现在假如项目中的操作数据库的包为model里面存放了我们的XML文件db.xml现在来看看如何解析出来相关的数据来调用。 第一个类:package model;import org.xml.sax.Attributes;import org.xml.sax.helpers.DefaultHandler;import...
Linux中.a,.la,.o,.so文件的意义和编程实现

Linux中.a,.la,.o,.so文件的意义和编程实现

Linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库,是好多个.o合在一起,用于静态连接.la为libtool自动生成的一些共享库,vi编辑查看,主要记录了一些配置信息。可以用如下命令查看*.la文件的格式 $file *.la *.la: ASCII English text所以可以用vi来查看其内容。@@@...
Java入门之深入理解嵌套类和内部类

Java入门之深入理解嵌套类和内部类

一、什么是嵌套类及内部类? 可以在一个类的内部定义另一个类,这种类称为嵌套类(nested classes),它有两种类型: 静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为 内部类(inner)。嵌套类从JDK1.1开始引入。其中inner类又可分为三种: 其一、在一个类(外部类)中直接定义的内部类; 其二、在一个方法(外部类的方法)中定义的内部类; 其三、匿名内部类。 下面,我将说明这几种嵌套类的使用及注意事项。 二...
Java反射机制系列基础知识

Java反射机制系列基础知识

Java 反射机制是指Java程序可以在执行期载入,探知,使用编译期间完全未知的classes.这句话可能有点难以理解,我们可以通过一个例子来看。在Java程序中我们经常会用到这样一条语句来创建一个对象。Date date = new Date();在这条语句中date的类型(Java.util.Date)在编译时 已经确定。那么,有没有办法使我们把对象类型的确定时间由编译转到运行,答案是肯定的。这就是Java反射机制所提供的便利。而且它不单单可以生成对象...
C语言中的枚举类型和在Linux系统中的作用

C语言中的枚举类型和在Linux系统中的作用

[点评:枚举一般用于定义一个集合,如色彩,星期等等,他提供了更加贴近实际的对对象的描述,方便了编程工作.]下面简单介绍下C语言中的枚举类型和在Linux系统中的作用。枚举是一个被命名的整型常数的集合, 枚举在日常生活中很常见。例如表示星期的SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY,SATURDAY, 就是一个枚举。枚举的说明与结构和联合相似, 其形式为:enum 枚举名{标识符[=整型常数],...
简述JAVA反射机制的应用

简述JAVA反射机制的应用

开发的时候有时候会碰到这样的情况,我们在写程序的时候并不知道需要调用某个对象的哪个方法,只有程序运行后,我们才能够知道。或许我们需要根据客户端传过来的某个String参数的值来判断我们应该执行哪个方法。在这种情况下JAVA的反射执行就可以帮上忙了。下面是我做的一个简单的测试代码,提供给大家做个参考。 import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Met...
关于pthread_join函数与Linux线程(ref)

关于pthread_join函数与Linux线程(ref)

pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有线程都有一个线程号,也就是Thread ID。其类型为pthread_t。通过调用pthread_self()函数可以获得自身的线程号。下面说一下如何创建一个线程。通过创建线程,线程将...
Java语言学习细节之构造方法调用浅谈

Java语言学习细节之构造方法调用浅谈

在学习JAVA过程中,必须要了解这些基本的东西才能对读代码少些困惑,而这些细节是新手必须注意的。 总结:初始化的顺序为:先初始化父类的静态代码——>初始化子类的静态代码——>创建实例时,如果不创建实例,则后面的不执行)初始化父类的非静态代码——>初始化父类构造函数——>初始化子类非静态代码——>初始化子类构造函数子类继承父类会先初始化父类,调用父类的构造函数。 子类的构造方法的第一条语句就是调用父类的没有参数的构造方法,如果...
深入体会Ruby语言中的String类型

深入体会Ruby语言中的String类型

Ruby语言中的String是mutable的,不像Java、C#中的String是immutable的。比如:str1="abc"str2="abc" 在Java中,对于字面量的字符串,jvm内部维持一张表,因此如果在Java中,str1和str2是同一个String对象。而在Ruby中, str1和str2是完全不同的对象。同样,在java中对于String对象的操作都将产生一个新的对象,而Ruby则是操纵同一个对象,比如:str="abc"str.c...
Linux内段错误的解决办法

Linux内段错误的解决办法

一般来说,Linux内段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。一旦一个程序发生了越界访问,cp...
应用 Valgrind 发现 Linux 程序的内存问题[图文]

应用 Valgrind 发现 Linux 程序的内存问题[图文]

杨 经 (cdlyangj@cn.ibm.com), 软件工程师, IBM如何定位应用程序开发中的内存问题,一直是 Linux 应用程序开发中的瓶颈所在。有一款非常优秀的 Linux 下开源的内存问题检测工具:valgrind,能够极大的帮助你解决上述问题。掌握 valgrind 的使用以及工作原理,能够有效地定位进而避免应用开发中的内存问题。应用 Valgrind 发现 Linux 程序的内存问题Valgrind 概述体系结构Valgrind是一套Lin...
Java程序中的配置文件的存放和读取

Java程序中的配置文件的存放和读取

大家可能经常会遇到在Java程序中存取程序配置文件的需求,比如,为了能够和不同的数据库连接,我们经常把数据库连接的信息存放到属性文件中,这些信息一般包括数据库驱动程序类名、数据库连接的URL,数据库的用户名和口令等等。为了便于程序的安装或部署,我们经常会把这些的配置文件存放到程序安装的根目录中。由于Java程序用包来分组类,有时候将这些配置文件放入到读取它们的类所在的包目录中会更好一些。比如,在下面的图示中,将数据库配置文件 database.prope...
庞大、整体化的JDK应该模块化

庞大、整体化的JDK应该模块化

Sun公司的首席工程师——Mark Reinhold一直主张将Sun JDK模块化。他举例说明了复杂性如何损害这个平台,以及JDK 6 update 10版的Java Kernel和Quickstarter的功能只是解决了JDK长期关联成长导致的表面诟病。Mark首先解释了JDK为何会成为现在这样庞大的状态:JDK非常大,但还没有像宇宙这么大。JDK很大是因为在过去13年里,Java SE平台已经从一个最初打算用于嵌入式设备的小系统发展成为横跨广阔领域、服...
<< 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 >>