易截截图软件、单文件、免安装、纯绿色、仅160KB

linux c socket 开发与编译实例

这篇日志还是先从一个能够运行起来的例子出发,一旦能顺利的看到程序的成功运行,那么接下来的事件我想应该是问为什么了?似乎这样更加容易理解和掌握。
对于socket程序的概念这里就不多写了,但我相信,如果能看完这整篇文章,我相信不会再有这样的疑问的。
下面将编写一个c/s结构的程序,主要功能是client将向server发送一些消息,而当server收到client的请求时,并向client发送一条回应信息。
server.c代码如下:
#include <stdio .h>
#include < stdlib .h>
#include < errno .h>
#include < string .h>
#include < sys /types.h>
#include < netinet /in.h>
#include < sys /socket.h>
#include < sys /wait.h>
 
#define SERVPORT 3333
#define BACKLOG 10
#define MAXSIZE 1024
 
int main() {
    int sockfd,client_fd;
    struct sockaddr_in my_addr;
    struct sockaddr_in remote_addr;
    //创建套接字
    if ((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1) {
        perror("socket create failed!");
        exit(1);
    }
 
    //绑定端口地址
    my_addr.sin_family      = AF_INET;
    my_addr.sin_port        = htons(SERVPORT);
    my_addr.sin_addr.s_addr = INADDR_ANY;
    bzero(&(my_addr.sin_zero),8);
    if (bind(sockfd, (struct sockaddr*)&my_addr, sizeof(struct sockaddr)) == -1) {
        perror("bind error!");
        exit(1);
    }
 
    //监听端口
    if (listen(sockfd, BACKLOG) == -1) {
        perror("listen error");
        exit(1);
    }
 
  &n


相关文档:

C类型转换


强制类型转换是通过类型转换运算来实现的。其一般形式为: (类型说明符) (表达式) 其功能是把表达式的运算结果强制转换成类型说明符所表示的类型。例如: (float) a 把a转换为实型(int)(x+y) 把x+y的结果转换为整型在使用强制转换时应注意以下问题:
1.类型说明符和表达式都必须加括号(单个变量可以不加括号),如把(int) ......

C/C++移位运算符出界后的结果是不可预期的

转自:http://dev.csdn.net/article/29/29329.shtm
 
关于逻辑移位、算术移位可参见 迅雷深大笔试题部分。的一道题。
以前看到C++标准上说,移位运算符(<<、>>)出界时的行为并不确定:
The behavior is undefined if the right operand is negative, or greater than or equal to the length in bit ......

C/C++中指针和引用之相关问题研究

 一、基本知识
指针和引用的声明方式:
声明指针:char* pc;
声明引用:char& rc = 0;
 
它们的区别:
①从现象上看,指针在运行时可以改变其所指向的值,而引用一旦和某个对象绑定后就不再改变。这句话可以理解为:指针可以被重新赋值以指向另一个不同的对象。但是引用则总是指向在初始化时被指定的对 ......

关于C中结构体的大小问题(sizeof)

作者:
曾宏安,华清远见嵌入式学院
高级讲师。
运算符sizeof可以计算出给定类型的大小,对于32位系统来说,sizeof(char) = 1; sizeof(int) = 4。基本数据类型的大小很好计算,我们来看一下如何计算构造数据类型的大小。
C语言中的构造数据类型有三种:数组、结构体和共用体。
数组是相同类型的元素的集合,只要会计算 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号