幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2379|回复: 3

[通用编程] [原创]Linux Based Internet Socket編程

[复制链接]

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-6-23 12:58:11 | 显示全部楼层 |阅读模式
其實也不是啥,
只是把最近啃過的筆記整理一下
希望有用吧(對网遊方面)

預讀
作為一個Socket,必須要先定義他的存在,建立一個Socket
而Socket是一種I/O物件,所以Linux把他當成一個檔案
每一個I/O物件檔也會有一個編號,也就是File Descriptor
當我們建立一個Socket時,作為一個I/O物,他也會有一個FD
以後所有Socket相關的指令也要使用這個FD作參數
而FD本身是一個int,所以第一個資料格式是

int

建立Socket
不論建立伺服端還是客戶端,Socket的建立方法都是一樣

int socket(int domain, int type, int protocol)
domain指Adress Family,填AF_INET
type指那類型的Socket,視乎用TCP/UDP填 SOCK_STREAM / SOCK_DATAGRAM
protocol是通訊的制式,多數也是填0
回傳值就是Socket的FD

一個有趣的地方是,在console有著I/O Stream導向的功能
例如把cerr的output指向cout
同樣可以把一個程式的output指向socket的Stream,也就是指向socket取得的FD

最後最後,說明select()這指令
以下需要include sys/time.h sys/types.h unistd.h sys/select.h
select()本來用於處理檔案,檢查某個file是否可讀,可寫或是否出現問題

有興趣可到http://coolpay64.myftp.org:8088/blog/

不幸的這是某自己的伺服,沒有連線是看不到的
還請多多指教

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复

使用道具 举报

136

主题

1751

帖子

548

积分

版主

Rank: 7Rank: 7Rank: 7

积分
548
发表于 2007-6-23 14:22:23 | 显示全部楼层
是用自己的机子开的blog.....[s:5]
里面记了好多有趣的东西,学习学习。
え~え~お!!!
回复 支持 反对

使用道具 举报

88

主题

5419

帖子

214748万

积分

版主

S素世上最伟大最华丽

Rank: 7Rank: 7Rank: 7

积分
2147483647
QQ
发表于 2007-6-23 18:22:22 | 显示全部楼层
C君总是这么勤奋~~
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
 楼主| 发表于 2007-6-23 22:56:33 | 显示全部楼层
間中,奇是也是剛剛起步

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-4-29 15:55 , Processed in 0.025767 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表