<<Linux 网络编程>>摘要

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

编程:

服务器先要做的事情:

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);

  

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

最新文章

  1. C++-Qt【2】-实现一个简单的记事本
  2. JavaScript编码规范
  3. Mysql学习笔记(五)数据查询之测试sql部分。
  4. HDU2845 DP
  5. Falcon Genome Assembly Tool Kit Manual
  6. (10)nehe教程4--旋转
  7. 一起刷LeetCode3-Longest Substring With Repeating Characters
  8. Android 侧滑菜单的简单实现(SlidingMenu)二
  9. ARC 工作原理
  10. PHP学习笔记6-时间/日期
  11. c#-委托,匿名方法,lambda表达的关系
  12. PHP中被忽略的性能优化利器:生成器
  13. 小马哥Python知识体系
  14. Python3实现自动点赞抖音小姐姐
  15. IDE 设备(磁盘/CD-ROM)配置不正确。“ide1:1”上具有一个 IDE 从设备,但没有主设备。此配置在虚拟机中无法正常运行。请使用配置编辑器将磁盘/CD-ROM 从“ide1:1”移到“ide1:0”。
  16. 上架一台Cisco防火墙及其架构
  17. onload、onpageshow、onpagehide、onbeforeunload、onunload的谣言纠正及特点介绍
  18. SpringBoot-@PathVariable
  19. python新建txt文件,并逐行写入数据
  20. Ugly Number II leetcode java

热门文章

  1. 【BZOJ5332】[SDOI2018]旧试题(数论,三元环计数)
  2. 【CF526G】Spiders Evil Plan(贪心)
  3. Balanced Sequence HDU - 6299(杭电多校1 B)
  4. 2018 ICPC 焦作网络赛 E.Jiu Yuan Wants to Eat
  5. poj3259Wormholes (Bellman_Ford/SPFA/Floyed算法判断是否存在负环)
  6. MessageDigest来实现数据加密
  7. 任意模数NTT
  8. bzoj4036[HAOI2015]set 按位或
  9. 2.Linux基础命令
  10. nohup报错