---
# System prepended metadata

title: Socket Programming
tags: [C, Network, Linux OS]

---

Socket Programming
===

###### tags: `Network` `C` `Linux OS`

## Learning
- [Linux网络 - 数据包的接收过程](https://segmentfault.com/a/1190000008836467)
- [Linux网络 - 数据包的发送过程](https://segmentfault.com/a/1190000008926093)
- [TCP Socket Programming 學習筆記](http://zake7749.github.io/2015/03/17/SocketProgramming/)

## GCC
- [Preprocessing, Compilation, Assembly, Linking](https://www.calleerlandsson.com/the-four-stages-of-compiling-a-c-program/)
- [gcc -L / -l option flags](https://www.rapidtables.com/code/linux/gcc/gcc-l.html)

## GIT
- [Git Submodule](http://josephj.com/entry.php?id=342)
```
git clone git://github.com/schacon/parentproj.git
# 更新.git/config
git submodule init
# 拉取子專案所有內容並更新.git/modules/子專案/的commit ID
git submodule update
git add 子專案目錄
git commit -m "Update 子專案 commit ID"
```

## Reference
- [select](http://beej-zhtw.netdpi.net/07-advanced-technology/7-2-select) - monitor multiple sockets ready state.
- [pthread](https://www.iteye.com/blog/huoyj-1907529) - joinable thread vs. detached thread



