If this answer comes off as snarky, I apologize in advance. I'm just trying to give a little "tough love".
You ask "Why can't I meet customers directly?" - the answer is in your very next sentence:
"My network is not very good as I am not very social."
Meeting customers is hard. Selling is hard. Marketing is hard. These things are especially hard for introverted technical engineering types. That's why sales people exist and why they get paid very, very well - it's not uncommon for a top sales person to make more than the owner of a small company (this has happened to me 2 out of the 10 years we've be in business).
To answer your specific question, there are lots of strategies for meeting customers:
- Cold Calling
- Lead Generating Marketing Campaigns
- Advertising
- Referrals from Your Network
But that's only half the battle. The other half of the battle is having something that the customer wants and being able to convince that customer that you are the best choice. In most cases, a generic "freelancer" isn't really what the customer is looking for. They are looking for a solution to a problem.
There are customers out there who are looking for freelancers, and I think you've already found one or two. These are companies who are able to market and find the end customer, convince the customer to hire them, negotiate prices, understand their problem, conceptualize the solution, manage a team of developers like yourself, support the solution after those developers have moved on to other opportunities, carry insurance and warranties in case the developers have faulty code, etc. While it sometimes doesn't look like it from where you stand today, the 'guy in the middle' is doing a lot of hard work so that all you have to do is code. That's why he got paid more than you did.
If all you are offering is coding/programming, you'll always be on the bottom of the 'getting paid pyramid'.
I was once in your shoes, and the good news is that there is hope. There are ways for you to get a bigger piece of the pie. Here's how I did it.
I started out like you, with a day job working for the man. I started picking up a few side projects for a little extra money, but there was no way I could support being a freelancer full time - I just didn't have the network. At that time, I was a generic Windows developer. It was the early 1990's.
Then I started to specialize. I got assigned to a project at work that involved an emerging technology at the time called "Electronic Document Management". I completed that project and moved on to another like it. Then I leveraged that experience to get a job at a software company that made document management software. A couple of years later, I leveraged that experience to join a consulting firm as a Jr. Partner in charge of their document management projects (by that time, the buzz word had changed to "Enterprise Content Management"). Three years later, I was speaking at industry conferences and had built a good reputation, and I started my own firm. That was 10 years ago.
With each move I made, I earned more money and got a bigger piece of the pie, because my expertise made me more valuable to the level of the pyramid above me. But it didn't happen overnight.