请教在一个程序中如何用一个tcp socket同时实现客户端和服务端的功能?

请问在一个程序中怎么用一个tcp socket同时实现客户端和服务端的功能?!
如题   本人在写一个在局域网内能互相发送消息和文件的程序,不需要服务器端,现在发消息实现了,但是在发送文件的时候怎么处理一个tcp   socke能同时作为客户端和服务端??

------解决方案--------------------
如果是TCP协议,那就必需要一个Socket来负责监听,不能在一个Socket上面同时监听和发送数据!